Direct3D基础——颜色

本文介绍了Direct3D中颜色的表示方法,包括使用D3DCOLOR和D3DCOLORVALUE结构,以及顶点颜色在32位值中的表示。讨论了顶点着色的概念,提到了平面着色和Gouraud平滑着色,并指出了两者在视觉效果上的差异。
摘要由CSDN通过智能技术生成

颜色表示

在Direct3D中颜色使用RGB来表示,我们认为颜色都可以分成:Red(红色)、Green(绿色)、Blue(蓝色)这三种颜色的加性混合,跟向量一样。

RGB数据可以使用两种不同的结构来保存。

第一种是:D3DCOLOR,这个结构和DWORD完全相同,由typdef进行定义,一共4个字节,32位,D3DCOLOR类型中的各个分量被分成四个8位置的数据,分别来储存RGB三个颜色和一个Alpha值,每一项都代表了该位置对应颜色的亮度,如下图:

因为每一钟颜色只占用1字节,所以范围就在(1,255)之间,接近0的值表示低亮度,接近255的值表示高亮度。

对于简单的了解,我们暂时先不去关心Alpha值,他主要用于Alpha融合。

对于每一个颜色的值,我们要将他插到对应的D3DCOLOR结构位置里面,就需要进行位运算,Direct3D中有提供一个D3DCOLOR_ARGB宏来帮助我们。该宏中第一个参数是Alpha值,后面三个参数是3种颜色的分量,每个参数必须在0~255之间取值,调用方法如下:

D3DCOLOR brightRed = D3DCOLOR_ARGB(255,255,0,0);
D3DCOLOR someColo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值