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

libgdx how to set alpha on multiple sprites as if it were a single sprite

我正在尝试实现如下图(B)所示的效果。如果我在 Sprite Batch 上设置 alpha,我最终会得到如 (C) 所示的效果。谁能告诉我如何才能达到 (B) 中的预期效果。

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

您的要求很重要。毕竟,混合是在每个三角形的基础上进行的,两个单独的图元是两个 separate 图元。一个接着一个混合,没有任何联系。

唯一一般实现您想要的方法是将这些对象的总和渲染到单独的帧缓冲区,写入每个对象的 alpha 值,但是不混合。注意单独的framebuffer应该有一个alpha分量,在你开始写之前应该已经清0了。

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