我现在想了很长一段时间来优化我的游戏帧率,而没有真正取得进展。我正在运行最新的iPhone SDK并拥有iPhone 3G 3.1.2设备。iPhone的openGLES性能调整
我调用角落找寻150 drawcalls,总共渲染约1900三角形(所有对象都使用两个texturelayers和多纹理纹理化。最纹理来自存储在PVRTC 2bpp压缩纹理相同textureAtlasTexture)。 这使我的手机呈现在30 fps的周围,这对我来说似乎太低了,只有1900个三角形。
我尝试了很多事情来优化性能,包括将对象组合在一起,转换CPU上的顶点并将它们渲染成单个drawcall。这个字节8个drawcalls(作为oposed到150 drawcalls),但性能差不多(fps下降到大约26fps)
我使用存储在交错数组中的32byte顶点(12bytes位置,12bytes normals,8bytes uv) 。我正在渲染triangleLists,顶点按TriStrip顺序排列。
我做了一些分析,但我不知道如何解释它。
仪器采样 使用仪器和采样yelds这样的结果: http://neo.cycovery.com/instruments_sampling.gif 告诉我说了很多时间在“mach_msg_trap”是花。我搜索了它,似乎这个函数被称为等待一些其他的东西。但等待什么?
仪器的OpenGL 仪器符合OpenGL模块yelds这样的结果: http://neo.cycovery.com/intstruments_openglES_debug.gif 但在这里,我真的不知道这些数字告诉我
鲨鱼分析: 与鲨鱼却没有告诉剖析我不到多少: http://neo.cycovery.com/shark_profile_release.gif 数量最多为10%,由DrawTriangles花 - 和所有的剩余在非常小的比例的功能花了
任何人都可以告诉我还有什么可以做的,以找出瓶颈,并可以帮助我解释这些分析信息?
非常感谢!