我该如何组织OpenGL ES 1.x 2D图层树?

时间:2010-01-28 12:22:01

标签: iphone opengl textures framebuffer layer

我正在开发一个可爱的益智应用程序 - http://gotoandplay.freeblog.hu/categories/compactTangram / - ,出于性能原因,我决定用OpenGL渲染视图。我开始学习它,我可以使用缓冲区,顶点,纹理以非常基本的方式。

情况: 在游戏中用户操作7个puzzlePiece,每个都有5个子层,以获得一些漂亮的灯光感觉。大多数纹理是256x256。用户一次只操作一件,因此其余部分在游戏过程中不变。这里没有任何图形的app骨架:http://gotoandplay.freeblog.hu/archives/2009/11/11/compactTangram_v10_-_puzzle_completement_test/

问题: 我该如何组织它们?在单独的帧缓冲区(?)/纹理(?)中“预先绘制”实际的块状态是一个好主意,还是我可以在一个时间步长内简单地重绘每个块/层(1 + 7 * 5 = 36精灵)?如果我使用“predraw”,那么我该怎么办?绘制到puzzePiece framebuffer?然后我怎样才能将它绘制到场景帧缓冲区中?或者是一种“合并”纹理的简单方法吗?

希望你能理解我的问题,如果看起来太暗,请看看我的想法如何在我的博客中渲染一个实际的部分(这里有一个简单的flash实现):{{ 3}}

1 个答案:

答案 0 :(得分:0)

处理纹理的一种常用方法是在游戏/关卡开始时将所有图像打包成“纹理图集”。

您的最大纹理尺寸为1024x1024,iPhone上的内存大约有三个。

当您拥有这些“超级纹理”中的所有图像时,您可以绘制大纹理的相关区域。这样做的好处是,你必须不经常绑定纹理,你可以获得更好的性能,以及减少必要的空间,将小图像放入两个大小的纹理中。