1

我正在尝试在 Direct3D 中使用DrawIndexedPrimitives. 但是,我无法在屏幕上看到它。调试 Direct3D 模型的常用方法是什么?

我尝试了以下方法:

  • 关闭背面剔除
  • 用来PrimitiveType.LineStrip代替PrimitiveType.TriangleStrip
  • 视图和投影矩阵的几种组合。
  • 使用 AutoCAD 将顶点绘制为小球体
4

3 回答 3

2

使用 DX SDK 中的 PIX 工具。真是太棒了

可能您会想要使用单帧捕获模式。然后在绘图调用中,PIX 将在顶点处理发生之前、顶点处理发生之后、设备的完整状态、渲染的结果像素等显示模型。

于 2008-10-30T07:04:52.587 回答
2
  • 将背景颜色设为灰色;那么如果它是白色或黑色,你会看到它。
  • 检查您的变换矩阵(世界/视图/投影)。使用标准数学函数进行查看和投影,将世界设置为身份。
  • 确保设置好视口;很容易忘记这一点,并且在视口中有 0 值。
  • 打开 D3D 调试。看看调试喷出;很多人错过了运行时会告诉你出了什么问题。
  • 检查您的像素/顶点着色器。使用有效的已知设置;或固定功能。
  • 检查渲染状态。如果您遇到深度设置问题,请打开 Z 缓冲、Z 测试、Z 写入等。检查您的彩色书写遮罩是否打开。有很多状态,寻找您更改的可能导致问题的状态。
  • 检查您对 DrawIP 的调用 - 您可能会遇到参数问题,例如指定错误的顶点数、面数等。尝试绘制列表中的第一个三角形,而不是其他三角形;在你把它们都画出来之前先弄一个……
于 2008-12-04T10:20:00.113 回答
1

默认情况下,D3D 中没有灯光,可能一切都是黑色的。如果没有,请尝试打开灯。

于 2008-11-22T20:45:06.577 回答