每次更改libGDX enableBlending时都需要开始/结束吗?

时间:2013-08-31 20:40:44

标签: java android libgdx

我有一些没有透明像素的背景,然后有一些透明像素的精灵。在libGDX文档之后,我正在做这样的事情:

spriteBatch.begin();  
spriteBatch.disableBlending();  
spriteBatch.draw(background, ...);  
spriteBatch.enableBlending();  
spriteBatch.draw(sprite, ...);  
spriteBatch.end();  

但是,我刚刚阅读了这篇博文,建议你每次都必须使用开始/结束。

http://www.rengelbert.com/tutorial.php?id=179&show_all=true

spriteBatch.disableBlending();  
spriteBatch.begin();  
spriteBatch.draw(backgroundRegion, 0, 0, 320, 480);  
spriteBatch.end();  

spriteBatch.enableBlending();  
spriteBatch.begin();  
spriteBatch.draw(someTextureRegion1, 10, 30);  
spriteBatch.draw(someTextureRegion2, 50, 20);  
spriteBatch.draw(someTextureRegion3, 30, 90);  
spriteBatch.end();  

这真的需要吗?

我的代码似乎有用,没有报告错误,但我不知道如何测试它是否比第二个例子更好或更差。

1 个答案:

答案 0 :(得分:3)

启用/禁用混合会导致批次刷新,这与调用end / begin几乎相同。不需要自己这样做,尽管你可能应该知道这种情况。因此,您不必调用结束/开始,但应该将混合更改为最小值。