我正在为 iPhone 开发 2D 滚动游戏。我有一个大的图像背景,比如 480×6000 像素,只有一部分是可见的(正好一个屏幕的价值,480×320 像素)。在屏幕上获得这样的背景的最佳方法是什么?
目前,我将背景拆分为多个纹理(以绕过最大纹理大小限制),并将每个帧中的整个背景绘制为带纹理的三角形条。滚动是通过平移模型视图矩阵来完成的。剪刀框设置为窗口大小,480×320 像素。这并不意味着要快,我只是想要一个工作代码,然后再进行优化。
我认为也许 OpenGL 实现足够聪明,可以丢弃背景的不可见部分,但根据我编写的一些测量代码,它看起来背景平均需要 7 毫秒来绘制,最多需要 84 毫秒。(这是在模拟器中测量的。)这大约是整个渲染循环的一半,即。对我来说很慢。
绘制背景应该像将一些 480×320 像素从 VRAM 的一部分复制到另一部分一样简单,或者换句话说,速度极快。接近这种性能的最佳方法是什么?