调试Direct3D模型

时间:2008-10-30 06:50:55

标签: debugging direct3d

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

我尝试了以下内容:

  • 切掉背面剔除
  • 使用PrimitiveType.LineStrip代替PrimitiveType.TriangleStrip
  • View和Projection矩阵的几种组合。
  • 使用AutoCAD将顶点绘制为微小球体

3 个答案:

答案 0 :(得分:2)

使用DX SDK中的PIX工具。这是非常棒的

可能你会想要使用单帧捕捉模式。然后在绘制调用PIX上将显示顶点处理之前的模型,顶点处理发生后,设备的完整状态,生成的像素等等。

答案 1 :(得分:2)

  • 使背景颜色变为灰色;然后,如果是白色或黑色,你会看到它。
  • 检查变换矩阵(世界/视图/投影)。使用标准数学函数进行查看&投射,将世界设定为身份。
  • 确保设置视口;容易忘记这一个并且在视口中有0个值。
  • 打开D3D调试。看一下调试喷出;很多人都错过了运行时会告诉你出了什么问题。
  • 检查您的像素/顶点着色器。使用有效的已知设置;或固定功能。
  • 检查渲染状态。如果您有深度设置问题,请关闭Z缓冲,Z测试,Z写入等。检查您的颜色写掩码是否已打开。有许多州,寻找你改变的可能导致问题的州。
  • 检查您对DrawIP的调用 - 您可能会遇到参数问题,例如指定错误的顶点,面等数量。尝试绘制列表中的第一个三角形,而不是其他三角形;在你把它们全部绘制之前让它工作......

答案 2 :(得分:1)

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