Hinzufügen von 3D-Effekte auf ein 2D-Objekt - DirectX
Lösung
Laden Sie die gleiche Datei in den Viewer als in die eigene Anwendung? Denn es sieht tatsächlich wie Sie Normalen nicht in das Netz haben. Wenn Ihr die gleiche Datei wie der Betrachter verwenden, sie in der Netzdatei sollte aber.
Other than that, Ihre Beleuchtung ist unglaublich hell (alle Werte bei 1,0), würde ich die diffusen Werte auf 0,0 eingestellt und versuche, die Umgebungs bis 0,5 Rot Einstellung. Dann zumindest kann man sagen, wenn Ihr Licht arbeitet.
Andere Tipps
Sieht aus wie Sie haben kein Licht gesetzt.
Sie haben die Materialien, die in dem Netz definiert zu laden, und mindestens ein Licht gesetzt.
Wenn Sie ein Licht gesetzt haben, die Rendering-Code, um die festen Pipeline in DirectX 9 sieht wie folgt aus:
// 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);
}
Wenn Sie immer noch etwas nicht sehen, setzen Sie ein Material, das Sie selbst definiert haben.