【问题标题】:Optimizing OpenGL ES on the iPhone and interpreting Instruments在 iPhone 上优化 OpenGL ES 并解释 Instruments
【发布时间】:2011-03-08 02:49:15
【问题描述】:

我正在尝试将我在 iPhone 3G 上的 FPS 从 30 提高到尽可能高的水平……我遇到了几个问题,我认为最好寻求建议。

1) OpenGL ES Instrument 上的 Renderer Utilization 和 Tiler Utilization 列到底是什么意思?我的 Tiler Utiliation 百分比非常低,并且我的 Renderer Utilization 在用户交互期间以及当应用程序切换到横向模式时往往会下降。我注意到,每当渲染器利用率值下降时,我的 FPS 也会下降。我在横向模式下的 FPS 下降对我来说特别奇怪,因为纵向模式和横向模式使用完全相同的游戏逻辑和纹理……而横向模式实际上渲染的顶点/三角形更少(UI 的某些部分不是完全以横向模式绘制)。

2) 我已经完成了 ngmoco/Stanford 视频中推荐的大部分优化,我认为我唯一能做的就是将 GLfloats 更改为 GLshorts 并将我的顶点与我的纹理坐标交错到一个数组中。这些是否可能对我的 FPS 产生重大影响?这是一款 2D 精灵游戏,具有大量大而细致的纹理...

3) 隐藏多边形更快的方法是:将其所有顶点设置为相同的坐标(本质上是将其缩小为一个点),还是将其 alpha 值设置为 0?我猜是前者,因为在 iPhone 上混合速度通常较慢且特别昂贵。

4) 目前,我使用的是 2 512x512 纹理、1024x512 纹理和 256x256 纹理。我已经就如何最好地管理这个问题寻求建议,但由于 iPhone 3G 的内存问题,我被告知不要将它们组合成 1 1024x1024 纹理。我想在这里确认一下,因为如果我将所有内容都放入 1 个纹理中,我就可以消除重复调用 glBindTexture 的麻烦...

【问题讨论】:

    标签: iphone optimization opengl-es instruments


    【解决方案1】:

    对于#4:(a) 是的,iPhone 被记录为不能处理一侧大于 1024 的图像。 1024x1024 是理论上的最大限制,但如果您尝试向上推,可能会遇到问题。

    (b) 你的所有纹理都不适合 1024x1024;在 1024x512 和 2 512x512 填满该空间后,您仍然会剩下 256x256。

    【讨论】:

      猜你喜欢
      • 2011-02-16
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      相关资源
      最近更新 更多