2010-08-10 20 views

回答

1

你是否將相同的文件加載到查看器中作爲您自己的應用程序?因爲它看起來好像在網格中沒有任何法線。如果您使用與查看器相同的文件,它們應該位於網格文件中。

除此之外,您的照明非常明亮(所有值均爲1.0),我會將漫反射值設置爲0.0,並嘗試將環境設置爲0.5紅色。那麼至少你可以判斷你的燈是否在工作。

+1

謝謝。問題出在法線之上。調用[D3DXComputeNormals](http:// msdn。 microsoft.com/en-us/library/bb172742%28VS.85%29.aspx)幫助了我 – bdhar 2010-08-25 06:04:51

1

看起來你還沒有設置任何光線。

您必須加載網格中定義的材料,並設置至少一個燈。

一旦你設置一盞燈,使用固定管道在DirectX 9渲染代碼如下所示:

// 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); 
} 

如果仍然看不到任何東西,設定你自己定義的材料。

+0

我設置了一些照明,如[this](http://pastebin.com/xj0BpGwn)。但我仍然得到相同的圖像! – bdhar 2010-08-10 11:35:12

+0

你有沒有設置材料?爲了「看到」照明,您需要燈光和材料。順便說一句,我編輯了我的答案。 – KeatsPeeks 2010-08-10 11:39:38

+0

[It](http://pastebin.com/bGpPkdf8)被包含在代碼中:(。仍然沒有效果!! – bdhar 2010-08-10 11:47:16