当相机离我的260k多边形网格很近时,DirectX 9应用程序会减慢速度



我在DirectX 9中构建了一个OBJMesh加载程序,并对其进行了测试。一切似乎都很好,预计当我将相机移到离260000 poly模型很近的位置时,应用程序会减慢速度。但当我把相机移开时,应用程序似乎运行得很好。有人知道这个有什么问题吗?

听起来你在像素着色器上花了太多时间。

当你接近你的模型时,很多屏幕都被你的模型占据了,因此你与模型关联的像素着色器会被频繁调用。

你有没有加载一个特别高级的像素着色器?

试着注释掉你的像素着色器加载,或者试着将其切换为更简单的像素着色器,看看这是否能提高帧速率。

另一种选择是使用切换到线框模式

pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);

这意味着像素着色器仅对顶点的边调用。

您是否正在进行任何类型的碰撞检测、截头体剔除等。当你在某个距离处时,你可能会通过边界框测试,但随着你越来越近,碰撞检测会使用更准确的方法,甚至可能是逐顶点?

正如其他人所提到的,探查器应该在这里帮助你。

最新更新