DirectX903D 颜色

颜色 

颜色表示

颜色用RGB三元组表示。为红色(red)绿色(Green)蓝色(Blue)。

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

1  D3DCOLOR结构 与DWORD类型完全相同。共有32位。各位被 分成四个8位项(section)每项存储一种分量的亮度量。第个分量的亮度值范围都在[0, 255]区间内。

2  D3DCOLORVALUE 结构 有单精度浮点数据试题每个量的亮度值, 亮度值的取范围为[0, 1] (0表示没有亮度, 1表示亮度最大)

可用结构D3DXCOLOR替代D3DCOLORVALUE, 前者包含了后者的数据成员 还提供了一组有用的构造函数和重载去运算符。

 

顶点颜色

图元的由构成该图元的顶点的所决定。我们在顶点格式中定义了:

struct ColorVertex {
float x, y, z;
D3DCOLOR color;
Static
const DWORD FVF;
}
const DWOR ColorVertex::FVF = D3DFVF_XYZ | D3DFVF_DIFFSE;

着色

光栅过程中, 要对多边形进行着色(shading)规定利用顶点的来计算构成图元的像素的颜色。 有两种着色模式(shading mode): 平面着色(flat shading)和Gouraud着色(gouraud shading).

如果 使用flat shading 用第不念旧恶在顶点。其它的被忽略。 但是会呈现出“块状” 因为各颜色没有平滑过渡。Gourau着色可是平滑的。

设置如下:

//set flat shading

Device
->SetRenderState (D3DRS_SHADEMODE, D3DSHADE_FLAT);

//set Gouraud shading

D evice
->SetRenderState (D3DRS_SHADEMODE, D3DSHADE_GOURWUD);

《DircetX9.0 3D 游戏开发编程基础》笔记

江西理工大学 FangSH 2010-4-9

原文地址:https://www.cnblogs.com/fangshenghui/p/1708207.html