Почему мой материал задней сетки закрывает переднюю часть в D3D9
Как и на изображениях выше, я создал два прямоугольника с помощью D3DXCreateMeshFVF, но материал задней части (желтый) покрывает переднюю часть (красный). какова причина??
некоторый код:
Набор материалов:
void SetMeshMaterial(D3DMATERIAL9 & mt, UINT r, UINT g, UINT b, UINT a)
{
ZeroMemory(&mt, sizeof(D3DMATERIAL9));
mt.Diffuse = D3DXCOLOR(r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f);
mt.Ambient = D3DXCOLOR(r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f);
mt.Specular = D3DXCOLOR(r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f);
mt.Emissive = D3DXCOLOR(0.0f, 0.0f, 0.0f, 1.0f);
mt.Power = 5.0f;
}
Свет:
D3DLIGHT9 light;
::ZeroMemory(&light, sizeof(light));
D3DXVECTOR3 direction(1.0, 0.0, 0.0);
D3DXCOLOR d3dcolor = D3DCOLOR_XRGB(255, 255, 255);
light.Type = D3DLIGHT_DIRECTIONAL;
light.Direction = direction;
light.Ambient = d3dcolor;
light.Diffuse = d3dcolor;
light.Specular = d3dcolor;
m_pDevice->SetLight(0, &light);
m_pDevice->LightEnable(0, true);
Рендер:
m_pDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, 0x00000000, 1.0f, 0);
m_pDevice->BeginScene();
//////////////////////////////
m_pDevice->SetMaterial(&mt1);
pMesh1->DrawSubSet(0);
m_pDevice->SetMaterial(&mt2);
pMesh2->DrawSubSet(0);
m_pDevice->EndScene();
m_pDevice->Present(NULL, NULL, NULL, NULL);