簡體   English   中英

將3D效果添加到2D對象-DirectX

[英]Adding 3D effects to a 2D object - DirectX

我編寫了一個簡單的程序來加載directX .x網格文件。 我加載的圖像顯示如下

但是,MeshViewer顯示的是這樣的

如何獲得3D外觀? 我應該在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM