iphone - 在 iPhone 上优化 OpenGL ES 并解释 Instruments

标签 iphone optimization opengl-es instruments

我正在尝试将 iPhone 3G 上的 FPS 从 30 提高到尽可能高...但我遇到了一些问题,认为最好寻求建议。

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

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

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

4) 目前,我使用 2 512x512 纹理、1024x512 纹理和 256x256 纹理。我寻求有关如何最好地管理此问题的建议,并被告知不要将它们组合到 1 1024x1024 纹理中,因为 iPhone 3G 上存在内存问题。我想在这里确认这一点,因为如果我将所有内容放入 1 个纹理中,我就可以不必重复调用 glBindTexture...

最佳答案

致#4:(a) 是的,iPhone 被记录为不处理单边大于 1024 的图像。 1024x1024 是最大理论限制,但如果您尝试直接突破该限制,可能会遇到问题。

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

关于iphone - 在 iPhone 上优化 OpenGL ES 并解释 Instruments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3115323/

相关文章:

swift - 在 swift 中使用计时器的替代方案

mysql - 如何优化这个sqlrq?合适吗?怎样做比较好?

opengl-es - 对顶点使用GLshort而不是GLfloat

iphone - iOS - 从网站加载文本在 TextView 中有 HTML 标签。需要删除它们

iphone - iPhone应用程序。下载了多少

ios - Pod 需要 Swift 版本?

ios - 如何在 iOS 中暂停后台播放器

java - 降低 Java 时间和空间复杂性的最佳方法是什么?

ios - iOS 10 中 A7 设备上的 OpenGL 错误

opengl-es - OpenGL ES - 获取当前的 blendFunc