我在 DirectX 9 中构建了一个 OBJMesh 加载器,我正在对其进行测试。一切似乎都运行良好,预计当我将相机移动到非常靠近我的 260,000 多边形模型时,应用程序会变慢。但是当我将相机移开时,应用程序似乎运行良好。有谁知道这是什么问题?
问问题
140 次
2 回答
0
听起来很像您在像素着色器上花费了太多时间。
当您靠近您的模型时,您的模型会占用大量屏幕,因此您与模型关联的像素着色器将被频繁调用。
您是否加载了特别高级的像素着色器?
尝试注释掉您的像素着色器加载或尝试将其切换为更简单的像素着色器,看看这是否会提高帧速率。
另一种选择是使用以下方法切换到线框模式:
pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
这意味着您的像素着色器仅对顶点的边缘调用。
于 2013-08-29T13:18:04.773 回答
0
您是否在进行任何类型的碰撞检测、平截头体剔除等。您可能在一定距离处通过了边界框测试,但是当您靠近时,碰撞检测使用更准确的方法,甚至可能是每个顶点?
正如其他人提到的那样,分析器应该可以帮助您。
于 2013-08-29T13:27:15.973 回答