Per-Vertex颜色状态 (Direct3D 9)

如果告知运行时存在数据,则 Direct3D 照明引擎可以在执行照明时使用每个顶点的颜色数据。 这是通过打开以下呈现状态来完成的:

// disable per-vertex color
SetRenderState(D3DRS_COLORVERTEX, FALSE);

// enable per-vertex color
SetRenderState(D3DRS_COLORVERTEX, TRUE);

如果启用了每顶点颜色,应用程序可以配置系统从中检索顶点的颜色信息的源。 D3DRS_AMBIENTMATERIALSOURCE、D3DRS_DIFFUSEMATERIALSOURCE、D3DRS_EMISSIVEMATERIALSOURCE和D3DRS_SPECULARMATERIALSOURCE呈现状态分别控制环境、漫射、发射和反射颜色分量源。 每个状态都可以设置为 D3DMATERIALCOLORSOURCE 枚举类型的成员,该类型定义指示系统使用当前材料、漫射颜色或反射颜色作为指定颜色分量的源的常量。

呈现状态