GL_BLEND - 更改用作 Alpha 的通道

GL_BLEND - Change which channel is used as Alpha

如果我有一个使用不带 alpha 的颜色格式的渲染缓冲区,例如 GL_RG8,我如何告诉 alpha 混合器使用 alpha 的绿色通道?这可以使用混合蒙版在纹理中完成,但由于渲染缓冲区不支持这些,我该怎么办?

我当前的 blendFunc 是 GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA

片段着色器的每个用户定义输出包含 4 个通道:RGBA。 无论 输出将写入的目标图像格式如何,都是如此。这些输出是混合操作的源颜色。

因此,只需正常写入输出的 alpha 即可。不将 alpha 写入帧缓冲区图像并不重要。它仍然是源颜色的一部分,因此仍可用于混合目的。