我知道这是一个奇怪的问题,但我有这个“问题”。 我正在创建游戏中间件,用于创建具有全局照明等等的逼真照明。
我正处于创建世界观众的阶段,在那里你可以观看世界,对其进行一些修改,看看光照贴图的样子,你知道。
里面有一个属性网格。在网格类中,我有一个meshdata属性,在meshdata属性中我有材质属性,在该材质属性中我有COLOR PROPERTY。 YEAH。 它有R G B属性。 当我在属性网格中查看颜色属性时,这些值的顺序就像BGR,我可以将其更改为RGB吗?
大声笑我写的太多了..
答案 0 :(得分:0)
您的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);
答案 1 :(得分:0)
您可以将 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; }
}