我正在使用 OpenGL ES 为 iPhone 开发 2D 游戏,我想使用 320x480 位图图像作为持久背景。
我的第一个想法是创建一个 320x480 的四边形,然后在其上映射一个代表背景的纹理。所以...我创建了一个 512x512 的纹理,上面有一个 320x480 的图像。然后我将其映射到 320x480 四边形。
我每帧都绘制这个背景,然后在它上面绘制动画精灵。除了所有这些对象(背景+精灵)的绘制太慢之外,这很好用。
我做了一些测试,发现我的减速是在像素管道中。毫不奇怪,大背景图片是罪魁祸首。为了证明这一点,我删除了背景绘制,其他一切都渲染得非常快。
我正在寻找有关如何保持我的背景并提高绩效的建议。
这里有更多信息:
1)我目前正在模拟器上进行测试(仍在等待 Apple 获得许可)
2)背景是压缩到128k的PVR纹理
3)我曾希望有一种方法可以将此背景缓存到颜色缓冲区中,但没有任何运气。这可能是由于我对 OpenGL ES 缺乏经验,或者这可能是一个愚蠢的想法,行不通:)
4)我意识到整个背景并不总是需要刷新,只是被移动精灵绘制的部分。我开始研究刷新(根据需要)背景部分的技术,无论是作为单独的纹理还是使用剪刀框,但这似乎不够优雅。
任何提示/建议将不胜感激......
谢谢你。