在XNA中,什么情况下使用多个SpriteBatch来渲染游戏内容比较合适?到目前为止,我从未使用过多个SpriteBatch,并且没有注意到任何这种方法的缺点。
在哪些情况下使用多个SpriteBatch是必要的?
在XNA中,什么情况下使用多个SpriteBatch来渲染游戏内容比较合适?到目前为止,我从未使用过多个SpriteBatch,并且没有注意到任何这种方法的缺点。
在哪些情况下使用多个SpriteBatch是必要的?
这里有一个很好的例子,说明何时需要使用多个SpriteBatch(Shawn的博客--像往常一样--是权威的来源)。
SpriteBatch在调用End方法之前不会实际进行任何绘制。这意味着您可以使用不同的设置开始多个重叠的批处理,使用任何组合的批处理实例以任何顺序绘制精灵,并通过您的End调用的顺序控制每个批处理的整个内容的绘制顺序。
请注意,本示例旨在优化具有深度排序和alpha混合的场景的性能。当(或者更确切地说,如果)遇到性能问题时,使用多个SpriteBatch可能会有所收益。在此之前,保持简单可能更好。
对于与 DrawableGameComponents 相关的情况,每个 DrawableGameComponent 都有一个 SpriteBatch 可能会更容易,而不是试图传递此参数。