我在DirectX 9中构建了一个OBJMesh加载器,我正在测试它。一切似乎工作正常,期待当我将相机移动到非常接近我的260,000多边形模型时,应用程序会变慢。但是当我移开相机时,应用程序似乎运行正常。有谁知道这个问题是什么?
答案 0 :(得分:0)
这听起来非常像你在像素着色器上花费了太多时间。
当您接近模型时,模型会占用大量屏幕,因此您将经常调用与模型关联的像素着色器。
您是否加载了特别高级的像素着色器?
尝试评论您的像素着色器加载或尝试将其切换为更简单的像素着色器,并查看是否可以提高帧速率。
另一种选择是使用以下方法切换到线框模式:
pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
这意味着您的像素着色器仅针对顶点的边缘调用。
答案 1 :(得分:0)
您正在进行任何类型的碰撞检测,截头剔除等。您可能会在某个距离处通过边界框测试,但是当您靠近时,碰撞检测使用更精确的方法甚至可能每个顶点?
正如其他人所说,探查者应该帮助你。