颜色表示
在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