我一直在使用 http://rastertek.com/ 上的教程在 c++ 中开发 DirectX 10 2D 引擎我 的精灵系统基于http://rastertek.com/dx10tut11.html并且一直运行良好,直到我尝试渲染大小为 1920x1080 的背景纹理。
我遇到的问题是 FPS 从 3000 下降到 1800,但如果我只绘制较小的纹理到 2800 左右。我知道绘制大纹理总是会对性能产生影响,但必须有一种方法来优化这一点. 首先,我认为它与顶点缓冲区是动态的有关,但是将其更改为默认值并没有优化性能。着色器代码非常简单:根据视图矩阵计算顶点的位置,像素着色器使用纹理坐标来绘制它们。我一直在考虑只使用 DirectX 10 中包含的 D3DXSPRITE 系统,但它已在 DirectX 11 中被删除,所以我决定不使用它。
所以经过这么长的解释后,我的问题是:如何优化我的代码来绘制大纹理?您是否建议使用任何解决方案?