2010-08-10 7 views

Répondre

1

Chargez-vous le même fichier dans la visionneuse que dans votre propre application? Parce qu'il semble que vous n'ayez pas de normales dans le mesh. Si vous utilisez le même fichier que le visualiseur, ils doivent être dans le fichier de maillage. A part cela, votre éclairage est incroyablement brillant (toutes les valeurs sont à 1.0), je réglerais les valeurs de diffusion à 0.0 et j'essaierais de régler l'ambiance à 0.5 rouge. Au moins, vous pouvez dire si votre lumière fonctionne.

+1

Merci Le problème était avec les normaux L'appel [D3DXComputeNormals] (http: // msdn. microsoft.com/en-us/library/bb172742%28VS.85%29.aspx) m'a aidé – bdhar

1

On dirait que vous n'avez allumé aucune lumière.

Vous devez charger les matériaux définis dans le maillage et définir au moins une lumière.

Une fois que vous avez défini une lumière, le code de rendu en utilisant le pipeline fixe DirectX 9 ressemble à ceci:

// 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 vous ne voyez toujours rien, définir un matériel que vous vous avez défini .

+0

Je définis un éclairage comme [this] (http://pastebin.com/xj0BpGwn). mais je reçois toujours la même image! – bdhar

+0

avez-vous définir un matériau? Pour "voir" l'éclairage, il faut à la fois une lumière et un matériau. Btw j'ai édité ma réponse. – KeatsPeeks

+0

[It] (http://pastebin.com/bGpPkdf8) a été inclus dans le code :(Toujours pas d'effet !! – bdhar