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