DirectX C# SolidBrush 正在绘制白色
DirectX C# SolidBrush is drawing white
我想画一个window。为此,我创建了几个画笔。为了测试,我使用了普通的红色 (255, 0, 0)。现在我想使用更具体的颜色,例如 198、17、17 红色。我正在创建这样的画笔:
SolidColorBrush _redBrush = new SolidColorBrush(_device, new RawColor4(198, 17, 17, 1));
当我现在绘制 window 时,它不是红色的,而是白色的。谁能告诉我这有什么问题以及如何使用我真正想要的颜色进行绘制?
抱歉,如果这是一个非常简单的问题,但我对 DirectX 不是很有经验。也感谢您的帮助。
RawColor4
需要介于 0 和 1 之间的浮点值。
颜色应该是百分比(在这种情况下),因此 1.0 相当于 100%。当您测试 255,0,0 时,您会看到红色,因为您将 0 发送到绿色和蓝色通道,将 255 或 25500% 发送到红色通道,使用 (1,0,0) 可以获得相同的结果。
将您的值更改为 0 和 1 之间的百分比 -> (198/255,17/255,17/255,1) 这同样适用于 alpha 通道,因此 1 是无透明度,0 是完全透明。
我想画一个window。为此,我创建了几个画笔。为了测试,我使用了普通的红色 (255, 0, 0)。现在我想使用更具体的颜色,例如 198、17、17 红色。我正在创建这样的画笔:
SolidColorBrush _redBrush = new SolidColorBrush(_device, new RawColor4(198, 17, 17, 1));
当我现在绘制 window 时,它不是红色的,而是白色的。谁能告诉我这有什么问题以及如何使用我真正想要的颜色进行绘制?
抱歉,如果这是一个非常简单的问题,但我对 DirectX 不是很有经验。也感谢您的帮助。
RawColor4
需要介于 0 和 1 之间的浮点值。
颜色应该是百分比(在这种情况下),因此 1.0 相当于 100%。当您测试 255,0,0 时,您会看到红色,因为您将 0 发送到绿色和蓝色通道,将 255 或 25500% 发送到红色通道,使用 (1,0,0) 可以获得相同的结果。
将您的值更改为 0 和 1 之间的百分比 -> (198/255,17/255,17/255,1) 这同样适用于 alpha 通道,因此 1 是无透明度,0 是完全透明。