WebGL fragshader ... gl_FragColor 的传入值是多少?

WebGL fragshader ... what is the incoming value of gl_FragColor?

我正在学习编写片段着色器,但在使用混合模式时,我对 gl_FragColor 的传入值感到困惑。

在frag shader中调用main()时,在main()内部修改之前,gl_FragColor的值是多少?它总是 vec4(0.0, 0.0, 0.0, 1.0) 吗?它是同一像素的先前传递的值吗?是别的东西吗?价值是如何确定的?

gl_FragColor 是一个 输出 值,而不是输入值。 GLSL 1.0 ES 规范指出:

Reading from these variables before writing to them results in an undefined value

所以你不能指望它被设置为任何特定的东西。