我正在使用OpenGL ES为iPhone开发2D游戏,我想使用320x480位图图像作为持久背景.
我的第一个想法是创建一个320x480四边形然后将纹理映射到它上面代表背景.所以...我创建了一个512x512纹理,上面有320x480图像.然后我将其映射到320x480四核.
我每帧都画这个背景,然后在它上面绘制动画精灵.除了绘制所有这些对象(背景+精灵)太慢之外,这种方法很好.
我做了一些测试,发现我的减速是在像素管道中.毫不奇怪,大背景图像是罪魁祸首.为了证明这一点,我删除了背景绘制,其他所有内容都非常快速地呈现.
我正在寻找有关如何保持背景并提高性能的建议.
这里有更多信息:
1)我目前正在模拟器上测试(仍在等待Apple获得许可)
2)背景是压缩到128k的PVR纹理
3)我曾希望有一种方法可以将这个背景缓存到一个颜色缓冲区中但是没有任何运气.这可能是由于我对OpenGL ES缺乏经验,或者它可能是一个不起作用的愚蠢想法:)
4)我意识到整个背景并不总是必须刷新,只是被移动的精灵所绘制的部分.我开始研究用于刷新(根据需要)背景部分的技术,可以是单独的纹理,也可以是剪刀盒,但这似乎不太优雅.
任何提示/建议将不胜感激......
谢谢.
如果您可以发布一些绘图代码,那么帮助您会容易得多.
小智 5
如果你正在制作2D游戏,你有没有理由不使用现有的图书馆?具体来说,iPhone的cocos2d可能值得你花时间.我无法回答你关于如何解决这个问题的问题,但是我可以说我已经完成了你正在谈论的内容(在顶部有精灵的全屏幕背景)和cocos2d它的工作原理大.(假设60 fps对你来说足够快.)你可能有理由自己做,但如果可以的话,我强烈建议至少用cocos2d做一个快速原型,看看这对你有帮助.(有关iPhone版本的详细信息和来源,请访问:http://code.google.com/p/cocos2d-iphone/)
感谢所有提供这方面信息的人。所有的建议都以某种方式有所帮助。
然而,我想澄清的是,这里的主要问题是模拟器本身的行为(正如安德烈亚斯在他的回复中所暗示的那样)。一旦我能够在设备上安装该应用程序,它的性能就会好得多。我提到这一点是因为,在开发我的游戏之前,我看到很多帖子表明设备比模拟器慢得多。在某些情况下(例如一般应用程序逻辑)可能是这样,但根据我的经验,动画(特别是 3D 转换)在设备上要快得多。
| 归档时间: |
|
| 查看次数: |
15060 次 |
| 最近记录: |