有没有一个精灵表而不是多个图像提高了Android中opengl渲染的性能?

时间:2012-11-09 01:53:38

标签: android opengl-es sprite

我想知道有20个独立的图像是否有任何性能提升如果我们只使用一个具有所有这些图像的精灵来提高性能或者它没有太大变化?顺便说一句,我试图用opengl进行渲染

2 个答案:

答案 0 :(得分:1)

它通常可以提高性能,前提是净效果是您不经常更改活动纹理。

这是因为GPU在主存储和绘图之间缓存纹理。如果更改纹理,则将刷新该缓存。如果你继续使用相同的纹理,那么缓存可能会有效地工作,从而节省了更慢的主存储空间。

在手机上,CPU和GPU共享物理RAM是正常的,因此访问它是很昂贵的。

答案 1 :(得分:1)

您的问题非常广泛,因为它取决于很多因素,但一般来说 - 是的,合并资源通常会带来性能优势。主要原因是您在绘制框架时不执行纹理切换,这意味着您不必更改硬件状态,多次上传数据等等。

但是,有一些可能的缺点:如果你想要纹理包装,你可能搞砸了,精灵的糟糕包装可能会增加你的纹理大小等等。

总结:去吧,但明智地:)