【发布时间】:2014-03-21 10:28:32
【问题描述】:
libGDX 文档解释了如何将纹理绑定到 SpriteBatch...
如果 [SpriteBatch] 被赋予与上一个纹理不同的纹理,则它绑定最后一个纹理,提交收集的要绘制的几何图形,并开始为新纹理收集几何图形。
每隔几个绘制的矩形更改一次纹理可以防止 SpriteBatch 批量处理大量几何体。此外,绑定纹理是一项有点昂贵的操作。由于这些原因,通常将许多较小的图像存储在较大的图像中,然后绘制较大图像的区域以最大化几何批处理并避免纹理更改。
出于这个原因,我已将我所有的游戏精灵图像排列成一个纹理。但是,我现在希望在我的游戏中放置一个大的背景图片来填满整个屏幕。
我的选择似乎是……
-
将背景放在我用于较小游戏精灵的相同纹理中,或者...
-
为背景使用单独的纹理。
#1 的问题是,如果我想为不同的关卡使用不同的背景图像,这似乎非常不切实际(我的图像变得非常非常大,或者我必须为每个图像在多个图像中复制我的游戏精灵不同的背景)
但是如果我执行 #2,那么我必须在每次提交到 GPU 之前将 SpriteBatch 绑定到 2 个不同的纹理,文档将其描述为“相当昂贵”。
我不知道最好的方法是什么。我真的需要担心绑定到多个纹理吗?或者有没有更好的方法我没有考虑过?
寻求任何建议,谢谢!
【问题讨论】:
-
我认为绑定 2 个纹理不会那么昂贵。我认为如果您使用更多绑定,就会出现问题。也许这里的这个可以以某种方式帮助你:stackoverflow.com/questions/21164348/…
标签: background textures libgdx spritebatch