我知道这是一个奇怪的问题,但我有这个“问题”。我正在创建游戏中间件,以使用全局照明等创建逼真的照明。
我正处于创建世界查看器的阶段,您可以在其中查看世界,对其进行一些更改,看看光照贴图的样子,你知道的。
其中有一个属性网格。在网格类中,我有一个网格数据属性,在网格数据属性中我有材料属性,在那个材料属性中我有颜色属性。是的。它具有 RGB 属性。当我在属性网格中查看颜色属性时,这些值的顺序就像 BGR,我可以将其更改为 RGB 吗?
大声笑我写得太多了..
我知道这是一个奇怪的问题,但我有这个“问题”。我正在创建游戏中间件,以使用全局照明等创建逼真的照明。
我正处于创建世界查看器的阶段,您可以在其中查看世界,对其进行一些更改,看看光照贴图的样子,你知道的。
其中有一个属性网格。在网格类中,我有一个网格数据属性,在网格数据属性中我有材料属性,在那个材料属性中我有颜色属性。是的。它具有 RGB 属性。当我在属性网格中查看颜色属性时,这些值的顺序就像 BGR,我可以将其更改为 RGB 吗?
大声笑我写得太多了..
您的 Color 属性是什么类型?如果可以,您应该使用 System.Windows.Media.Color 结构作为您的属性类型。
由于您需要浮点数据来表示每种颜色,请查看 System.Windows.Media.Color 的定义
public float ScA { get; set; }
public float ScB { get; set; }
public float ScG { get; set; }
public float ScR { get; set; }
public static Color FromScRgb(float a, float r, float g, float b);
public static Color FromAValues(float a, float[] values, Uri profileUri);
public float[] GetNativeColorValues();
public static Color FromValues(float[] values, Uri profileUri);
您可以将PropertyOrder属性与您的PropertySorter一起使用。
创建继承自 ExpandableObjectConverter 的 PropertySorter 类并覆盖 GetPropertiesSupported 和 GetProperties 方法以定义您自己的排序顺序。
[TypeConverter(typeof(PropertySorter))]
public class ColorProperty
{
[PropertyOrder(1)]
public int R { get; set; }
[PropertyOrder(2)]
public int G { get; set; }
[PropertyOrder(3)]
public int B { get; set; }
}