关于material的问题,极度不解当中
material指的是物体表面对光的反应特性,但在
HRESULT CALLBACK OnResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext )
{
HRESULT hr;
D3DMATERIAL9 mtrl;
ZeroMemory(&mtrl, sizeof(D3DMATERIAL9));
mtrl.Diffuse.r = mtrl.Ambient.r = 0.0f;
mtrl.Diffuse.g = mtrl.Ambient.g = 0.0f;
mtrl.Diffuse.b = mtrl.Ambient.b = 0.0f;
mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f;
pd3dDevice-> SetMaterial(&mtrl);
}
中,为什么不是指具体哪一个物体,而是指的是3D设备,
也就是,如果现在有两个三角面,要让他们拥自已不同的反光特性,那么怎么办呢,
从上面的语句感觉他们总拥有一样的光反应特性,
请教高人
[解决办法]
d3d是状态机,opengl也是,也就是说,你设置了这些Material的这一刻开始,往后面所有渲染的三角形,都会使用这个Material
也就是说如果你的一大堆三角形中,有2种Material,那就要分2次渲染