如何在cocos2dx中增强位图纹理渲染的性能

时间:2017-01-01 01:32:45

标签: c++ opengl-es cocos2d-iphone

我正在尝试使用cocos2dx恢复旧游戏。 我所做的是读取遗留二进制文件并提取位图文件,其中总共有68k位图文件。 所以现在我已经读过文件,解压缩字节,将位图从RGB8转换为RGBA8888,然后生成位图作为纹理并创建一个精灵。 但由于它是一个等距游戏,所以有一个地图,由许多瓷砖组成。因此,使用不同的纹理绘制地图(每个位图作为单独的纹理)会花费大量的glcall。我所做的是尝试重用纹理并按局部zorder对它们进行分组,以尝试使用自动批处理。

对于角色的动画,现在我创建了127个单独的位图纹理,并尝试逐个创建精灵帧。

在完成所有工作后,gl绘制调用从800减少到50.但不幸的是,FPS仍然太慢(降至10-20,应该是60)

测试是在iphone模拟器上运行的,虽然它没有任何GPU,但这仍然是一个普通的FPS?(几乎有13k gl verts)

FPS是否受到角色动画纹理数量的影响?

我应该尝试在运行时打包纹理吗?例如结合纹理在运行时在内存中创建更大的纹理,并通过偏移加载它们。

1 个答案:

答案 0 :(得分:1)

甚至不要在模拟器上查看性能。这完全不相关,没有代表性。

所有当前的iOS设备都可以应对50个绘制调用和13k顶点,除非你有其他瓶颈(你只能通过在设备上运行找到),那么你肯定会以60fps的速度运行。