关于material的有关问题,极度不解当中

关于material的问题,极度不解当中material指的是物体表面对光的反应特性,但在HRESULTCALLBACKOnResetDevic

关于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次渲染