我想在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色调时,它会将其他通道归零。
我做错了什么?
答案 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要求,则可能会很乏味。