2008-10-30 18 views
1

我想在Direct3D中使用DrawIndexedPrimitives呈現模型。但是,我無法在屏幕上看到它。用於調試Direct3D模型的常用方法有哪些?調試Direct3D模型

我已經試過如下:

  • 關閉背面剔除的
  • 使用PrimitiveType.LineStrip代替PrimitiveType.TriangleStrip
  • 查看和投影矩陣的幾種組合。
  • 使用的AutoCAD繪製頂點爲微小球體

回答

2
  • 使背景顏色變灰;那麼如果它是白色或黑色,你會看到它。
  • 檢查你的變換矩陣(世界/視圖/投影)。使用標準數學函數查看&投影,將世界設置爲標識。
  • 確保你設置了你的視口;容易忘記這一個,並在視口中有0個值。
  • 打開D3D調試。看看調試流程;很多人會錯過運行時會告訴你發生了什麼問題。
  • 檢查你的像素/頂點着色器。使用一種可以工作的已知設置;或固定功能。
  • 檢查渲染狀態。在有深度設置問題的情況下,轉動Z緩衝,Z測試,Z寫入等。檢查您的顏色寫入掩碼。有很多國家,尋找你可能會導致問題的改變。
  • 檢查您的調用DrawIP - 您可能會遇到參數問題,例如指定錯誤的頂點數,面數等。嘗試在列表中繪製第一個三角形,而不要使用其他參數;得到一個工作之前,你把他們全部......
2

從DX SDK使用PIX工具。這是絕對真棒

也許你會想要使用單幀捕捉模式。然後在繪製調用中,PIX將在頂點處理髮生之前,頂點處理髮生之後,顯示模型,完成設備狀態,生成像素渲染等。

1

默認情況下,D3D中沒有光,可能是所有東西是黑色的。如果你不這樣做,請試着打開燈。