[英]Adding 3D effects to a 2D object - DirectX
看起來您還沒有點燈。
您必須加載網格中定義的材料,並設置至少一個燈光。
設置光源后,使用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);
}
如果仍然看不到任何內容,請設置您自己定義的材料。
您是否將與查看器中相同的文件加載到查看器中? 因為實際上看起來您的網格中沒有任何法線。 如果您使用與查看器相同的文件,則它們應位於網格文件中。
除此之外,您的照明非常亮(所有值均為1.0),我將漫反射值設置為0.0,然后嘗試將環境設置為0.5紅色。 然后至少您可以判斷出您的燈是否正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.