1

我知道这是一个奇怪的问题,但我有这个“问题”。我正在创建游戏中间件,以使用全局照明等创建逼真的照明。

我正处于创建世界查看器的阶段,您可以在其中查看世界,对其进行一些更改,看看光照贴图的样子,你知道的。

其中有一个属性网格。在网格类中,我有一个网格数据属性,在网格数据属性中我有材料属性,在那个材料属性中我有颜色属性。是的。它具有 RGB 属性。当我在属性网格中查看颜色属性时,这些值的顺序就像 BGR,我可以将其更改为 RGB 吗?

大声笑我写得太多了..

4

2 回答 2

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);
于 2012-10-06T19:41:10.673 回答
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; }
}
于 2016-11-30T03:27:39.723 回答