从着色器中可以忽略特定FBO颜色附件的所有颜色输出吗?忽略着色器内部的颜色输出
事情是这样的,例如:
#version 330
layout (location = 0) out vec4 output_A;
layout (location = 1) out vec4 output_B;
uniform float isGlass;
void main(void)
{
if (isGlass = 0)
{
output_A = vec4(1,1,1,1);
output_B = vec4(1,1,1,1);
}
else
{
output_A = vec4(1,1,1,1);
output_B = NULL;
}
}
有趣的,所以你可以启用/禁用个别颜色附件的alpha混合? –
是的。这就是'glBlendFunci'的用处。 – BDL
如果你有时间可以发布示例着色器,我正在努力实现这个工作。目标是根据if语句的结果写入输出。 –