2010-01-28 129 views
1

我正在开发一个可爱的益智应用程序 - http://gotoandplay.freeblog.hu/categories/compactTangram/- ,由于性能原因,我决定使用OpenGL渲染视图。我开始学习它,我以一种非常基本的方式使用缓冲区,顶点和纹理。如何组织OpenGL ES 1.x 2D图层树?

局势: 在游戏中用户操纵7个puzzlePiece,每个人都有5个子层获得一些漂亮的照明感觉。大多数纹理是256x256。用户一次只能操作一件,所以其余部分在播放期间不变。应用程序没有任何图形这里的一个骨架:http://gotoandplay.freeblog.hu/archives/2009/11/11/compactTangram_v10_-_puzzle_completement_test/

问题: 我应该如何安排呢?在单独的帧缓冲区(?)/纹理(?)中“预渲染”实际的块状态是一个好主意,或者我可以简单地在时间步骤中重绘每个块/层(1 + 7 * 5 = 36个精灵)?如果我使用“预绘”,那我该怎么办?绘制到puzzePiece framebuffer?那我怎样才能将它绘制到场景framebuffer中呢?还是有更简单的方式来“合并”纹理?

希望你能理解我的问题,如果看起来太暗淡请看看我的想法是如何在我的博客中呈现实际作品(这里有一个简单的flash实现我将要做的): http://gotoandplay.freeblog.hu/archives/2010/01/07/compactTangram_072_-_tan_rendering_labs/

+0

东西glCopyTexSubImage2D?或者glCopyTexImage2D?我只想将5个纹理合并到一个具有变量subTexture属性的纹理中,我想。 – Geri 2010-01-28 12:29:16

回答

0

处理纹理的常见方法是在游戏/关卡开始时将所有图像打包到“纹理地图集”中。

您的最大纹理尺寸是1024x1024,您可以在iPhone上的内存中有三个左右。

当你在这些“超级纹理”中的所有图像,你可以绘制大纹理的相关区域。这样做的好处是,您必须减少绑定纹理的次数,并且获得更好的性能,同时也可以切割出由于必须将小图像放入两个大小的纹理中而使用的多余空间。

+0

我的问题是错的。 – Geri 2010-01-28 15:32:21