Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode COCOS2D2.0和OpenGL分析器建议_Xcode_Performance_Opengl Es_Cocos2d Iphone - Fatal编程技术网

Xcode COCOS2D2.0和OpenGL分析器建议

Xcode COCOS2D2.0和OpenGL分析器建议,xcode,performance,opengl-es,cocos2d-iphone,Xcode,Performance,Opengl Es,Cocos2d Iphone,我已经在XCode上运行OpenGL Analyzer分析了我的游戏。我在游戏中使用Cococs2d 2.0作为静态库,我想知道以下建议是否能提高我的性能。我在其他论坛上读到一些帖子,说我不应该担心这一点,但由于我确实有一些性能问题,我想了解这些建议是否有可能改善它们 建议: 概述: 思考: 我特别提到的建议是: “建议使用VAO和VBO” 那么,我也想知道为什么会有“许多小批量抽签通知”。我使用的是spritebatch节点,这应该可以避免这个问题 另外,其他建议似乎也有道理,但这些是最“

我已经在XCode上运行OpenGL Analyzer分析了我的游戏。我在游戏中使用Cococs2d 2.0作为静态库,我想知道以下建议是否能提高我的性能。我在其他论坛上读到一些帖子,说我不应该担心这一点,但由于我确实有一些性能问题,我想了解这些建议是否有可能改善它们

建议:

概述:

思考:

我特别提到的建议是: “建议使用VAO和VBO”

那么,我也想知道为什么会有“许多小批量抽签通知”。我使用的是spritebatch节点,这应该可以避免这个问题

另外,其他建议似乎也有道理,但这些是最“常见”的建议,因此我想开始分析这些建议。

一个“小批量绘制调用”是指顶点数少于n个的任何东西。我不确定使用的确切阈值,但它可能在100-200左右。spritebatches真正做的是消除多次分割绘制调用以切换绑定纹理的需要,这并不自动意味着每个绘制调用将有100多个顶点(或在此上下文中定义的任意n个顶点);这种可能性很大,但不是必须的

老实说,我更关心的是非VBO draw调用和不使用VAO,尤其是如果您希望代码具有前向兼容性的话

“逻辑缓冲区负载”和“Mipmapping用法”警告很可能相关;可能两者都与FBO有关。其中一个与不正确使用
glClear(…)
有关,另一个与使用没有mipmap的纹理有关

关于逻辑缓冲区加载,您应该查看
GL\u EXT\u discard\u framebuffer
,对于基于分片的延迟渲染GPU(如所有iOS设备使用的GPU),以这种方式清除帧缓冲区是一种非常健康的优化策略

至于mipmap用法警告,我相信这是被触发的,因为您正在绘制FBO纹理,然后使用mipmap过滤器模式应用该纹理。必须使用
glGenerateMipamp(…)
手动构建绘制FBO的mip链/棱锥体

如果您能给我指出触发这些警告的一些单独的行,我很乐意为您详细解释它们