我正试着把我的iPhone 3Gs的FPS从30分提高到最高...我遇到了几个问题,我想最好还是请教一下。
1) OpenGL ES仪器上的渲染器利用率和压路器利用率列到底表示什么?我的Tiler利用率非常低,在用户交互期间和应用程序切换到横向模式时,我的渲染器利用率往往会下降。我注意到,每当渲染器利用率值下降时,我的FPS也会下降。我的FPS下降在横向模式对我来说是特别奇怪的,因为纵向模式和横向模式使用完全相同的游戏逻辑,和纹理…而横向模式实际上会渲染较少的顶点/三角形(在横向模式下,UI的某些部分根本不会绘制)。
2)我已经完成了ngmoco/斯坦福视频中推荐的大部分优化,我认为我唯一能做的就是将GLfloats更改为GLshorts,并将顶点和纹理坐标交错到一个数组中。这些都可能对我的FPS有很大的影响吗?这是一个2D精灵游戏,有很多大的,细节的纹理…
3)哪种隐藏多边形的方法更快:将多边形的所有顶点设置为相同的坐标(本质上是将其缩小为一个点),还是将其alpha值设置为0?我猜是前者,因为混合通常比较慢,而且在iPhone上特别昂贵。
4)目前,我使用2512x512纹理,1024x512纹理和256x256纹理。我曾就如何更好地管理这一点寻求建议,并被告知不要将它们组合到11024x1024纹理中,因为iPhone 3G的内存问题。我想在这里确认这一点,因为如果我把所有东西都放在1个texture中,我就可以避免重复调用glBindTexture……
发布于 2010-07-24 05:24:12
对#4:(a)是的,iPhone被记录为不能处理一面大于1024的图像。1024x1024是理论上的最大限制,但如果您尝试向上推到该限制,可能会遇到问题。
(b)不是所有的纹理都适合1024x1024;在1024x512和2512x512填充该空间后,仍然会剩下256x256。
https://stackoverflow.com/questions/3115323
复制相似问题