libgdx如何在多个精灵上设置alpha,就像它是一个精灵一样

时间:2016-03-28 11:19:51

标签: opengl libgdx sprite alpha spritebatch

我正在尝试达到如下图像(B)所示的效果。如果我在Sprite Batch上设置alpha,我最终得到的效果如(C)所示。任何人都可以告诉我如何在(B)中获得所需的效果。

enter image description here

请注意我不是要掩饰这些精灵。我正在尝试设置一个全局alpha,它将影响设置全局alpha后绘制的所有精灵。使用的一个例子是淡入或淡出的对话框。

1 个答案:

答案 0 :(得分:1)

你要求的是非平凡的。毕竟,混合在每个三角形的基础上工作,并且两个单独的基元是两个单独的基元。一个将在另一个之后混合,它们之间没有联系。

实现你想要的唯一通用方法是将这些对象的总和渲染到一个单独的帧缓冲区,写入每个对象的alpha值,但不混合。请注意,单独的帧缓冲区应该有一个alpha组件,在开始编写之前它应该被清除为0.

完成单独的帧缓冲后,您可以使用混合(根据需要添加一些alpha)将其渲染为单个四边形。