我有一个游戏,在启动时会创建所有需要的对象(所以大约有600个相同纹理的Sprite,1个玩家纹理和大约100个相同纹理的Sprite)。所以只需要3个纹理。
这些纹理目前都在各自的.png文件中。
我应该将这3张打包成纹理图集。因为我正在重复使用像600次这样的精灵而另一次只重复一次。会不会更慢?
答案 0 :(得分:2)
TextureAtlas不是关于重用资产 - 它是关于文件访问性能的改进。当你有3个.png文件时,引擎需要单独加载它们,这意味着它需要三次定义FileHandler,三次调用内存等等。使用TextureAtlas你只需要从内存加载图形一次,这肯定更有效。
关于为什么使用TextureAtlas的第二件事是纹理也只加载到GPU一次,如果你要使用单独的纹理,它们需要逐个加载。
所以答案是 - 是的,你应该使用TextureAtlas 但是由于你所要求的,它不会有所作为。如果你使用相同的纹理渲染1,2或1000个相同的精灵并不重要 - 无论你是否使用TextureAtlas,性能都是相同的。
在此步骤中,您还应该阅读AssetManager以了解如何处理LibGDX中的资产