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