用alpha 0绘制并在LIBGDX中保持rgb颜色

时间:2013-11-27 23:40:52

标签: opengl colors libgdx alpha

我想在fbo中绘制一些纹理,一些使用alpha 0,另一些使用alpha 1,因此我可以使用alpha通道为我的着色器存储信息。 我正在使用此代码为我想要的每个纹理与在fbo中呈现的alpha 0

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();

问题在于,当我尝试在着色器中获取rgb颜色时,我只会变黑。就像我设置alpha 0色调时,它会将其他通道归零。

我做错了什么?

1 个答案:

答案 0 :(得分: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)); 

在这种情况下,您可以设置整个批处理循环的值,并且必须再次更改它,如果您对不同的精灵有不同的alpha要求,则可能会很乏味。