2.3 Colors and cMaterial(颜色和材质)
。。。。。又整这些没用的,直接看声明吧:
class cMaterial { protected: D3DMATERIAL8 m_Material; // 材质结构体
public: cMaterial(); // 构造函数 D3DMATERIAL8 *GetMaterial(); // 返回 D3DMATERIAL8 对象 // 设置和返回 diffuse color 部分 BOOL SetDiffuseColor(char Red, char Green, char Blue); BOOL GetDiffuseColor(char *Red, char *Green, char *Blue); //设置和返回 ambient color components BOOL SetAmbientColor(char Red, char Green, char Blue); BOOL GetAmbientColor(char *Red, char *Green, char *Blue); //设置和返回 specular color components BOOL SetSpecularColor(char Red, char Green, char Blue); BOOL GetSpecularColor(char *Red, char *Green, char *Blue); //设置和返回emissive color components BOOL SetEmissiveColor(char Red, char Green, char Blue); BOOL GetEmissiveColor(char *Red, char *Green, char *Blue); //设置和返回power value BOOL SetPower(float Power); float GetPower(float Power); }; |
就像你看到的,cMaterial类保存了一个D3DMATERIAL结构体并给你一些设置、获取各种颜色组件的函数。要设置一个颜色,需要指定一个0到255的量。要获得一个颜色,需要提供保存颜色值的char类型指针。
只是一个简单的使用cMaterial设置成黄色材质的例子:
// 如果 g_Graphics是一个已经初始化过的cGraphics 对象 cMaterial YellowMaterial; YellowMaterial.SetDiffuseColor(255,255,0); YellowMaterial.SetAmbientColor(255,255,0); g_Graphics.SetMaterial(&YellowMaterial); //设置材质 |
你将使用cGraphics::SetMaterial与cMaterial一起使用,来设置当前渲染材质