【发布时间】:2018-04-21 11:07:42
【问题描述】:
我正在从一篇技术论文中移植一些 OpenGL 代码以用于 Metal。在其中,他们使用只有一个通道的渲染目标 - 一个 16 位浮点缓冲区。但随后他们像这样对其进行混合操作:
glBlendFunci(1, GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);
只有一个通道,这是否意味着在 OpenGL 中,目标默认为 alpha 通道?
有谁知道Metal是不是也一样?我没有看到我期望的结果,我想知道 Metal 是否有所不同,或者是否有一个设置可以控制单通道目标在混合方面的处理方式。
【问题讨论】:
-
不是 100% 确定,但是拥有单通道帧缓冲区并不意味着着色器不能另外输出 alpha 值。您不会存储目标 Alpha,但仍然可以有一个可用于混合计算的源 Alpha。
标签: opengl metal alphablending blending