2013-11-27 65 views
1

我想繪製一些紋理到fbo中,一些使用alpha 0和其他使用alpha 1,所以我可以使用alpha通道爲我的着色器存儲信息。 我使用此代碼爲每個紋理我想在FBO使用alpha 0繪製並保持RGB顏色在LIBGDX

batch.begin(); 
batch.setColor(new Color(1,1,1,0)); 
batch.draw(texture,x,y); 
batch.setColor(new Color(1,1,1,1)); 
batch.end(); 

問題渲染阿爾法0是,當我試圖讓我的着色器的RGB顏色我只得到黑色。這就像我設置alpha 0 tint時,它將其他通道歸零。

我在做什麼錯?

回答

3

一個簡單的方法來做到這一點

Sprite s=new Sprite(tex); 
float alpha=0.5f; //or whatever you want 
s.draw(batch,alpha); render the sprite with the given alpha without effecting other images 

在這裏,您將設置爲只有特定的精靈Alpha值,而如果你使用

batch.setColor(new Color(1,1,1,0)); 

在這種情況下,您可以設置的值整個批處理週期和你必須再次改變它,如果你對不同的子畫面有不同的字母要求,那麼可能會很乏味。

+0

我得到了與batch.setColor(new Color(1,1,1,0))相同的結果; – user3043732

+0

在我的情況下,它的工作非常好 –