Adición de efectos 3D a un objeto 2D - DirectX
Solución
¿Está cargando el mismo archivo en el visor como en su propia aplicación? Porque en realidad parece que no tiene ningún normales en la malla. Si su uso el mismo archivo que el espectador, que debe estar en el archivo de malla sin embargo.
Aparte de eso, su iluminación es increíblemente brillantes (todos los valores en 1.0), me gustaría establecer los valores difusos a 0,0 y tratar de establecer el ambiente a 0,5 rojo. A continuación, al menos se puede saber si su luz está funcionando.
Otros consejos
Parece que no se ha definido ninguna luz.
Usted tiene que cargar los materiales definidos en la malla, y configurar al menos una luz.
Una vez que haya establecido una luz, el código de representación mediante la tubería fija en DirectX 9 se ve así:
// NumMaterials and ShipMaterialshave already been loaded with the call to D3DXLoadMeshFromX
D3DXMATERIAL* ShipMats = (D3DXMATERIAL*) ShipMaterials->GetBufferPointer();
device->SetTexture(0, NULL); // assume a mesh with no texture
for (DWORD i = 0; i < NumMaterials; ++i)
{
device->SetMaterial(&ShipMats[i].MatD3D);
this->pShipMesh->DrawSubset(i);
}
Si todavía no se ve nada, establece un material que ha definido a sí mismo.