Libgdx-纹理封隔器



我有一个游戏,在启动时它会创建所有需要的对象(因此大约有600个相同纹理的精灵,1个玩家纹理,大约有100个相同纹理)。所以只需要3个纹理。

这些纹理目前都在各自的.png文件中。

我应该把这3个放进一个纹理图谱中吗。因为我重复使用一个精灵像600次,而另一个精灵只有1次。会不会慢一点?

TextureAtlas不是为了重用资产,而是为了提高文件访问性能。当你有3.png文件时,引擎需要单独加载它们,这意味着它需要定义三次FileHandler,调用三次内存等等。使用TextureAtlas,你只需要从内存加载一次图形,这肯定更有效。

为什么要使用TextureAtlas的第二件事是,纹理也只加载到GPU一次,而如果你要使用单独的纹理,则需要逐个加载。

因此,答案是-是的,您应该使用TextureAtlas,但由于您所问的内容,它不会有什么不同。如果使用相同的纹理,渲染1、2或1000个相同的精灵并不重要——无论是否使用TextureAtlas,性能都是相同的。


在这一步中,您还应该阅读AssetManager,了解如何处理LibGDX 中的资产

最新更新