gl_FragCoord.xy通过使用以下着色器代码并glReadPixels(0, 0, 1024, 1024, GL_RED, GL_FLOAT, xxx)从我的帧缓冲区对象获取着色器的输出,我对实际范围进行了测试,FBO附加了内部格式为的纹理GL_R32F。
out highp vec4 Output;
void main()
{
Output = vec4(gl_FragCoord.xy, 0.0, 1.0);
}
Run Code Online (Sandbox Code Playgroud)
实际结果是:gl_FragCoord.xy在[0.5,1023.5]范围内,而不是[0.0,1023.0]。
gl_FragCoord 坐标从 0 开始索引。
该表达式gl_FragCoord.x - 5将产生 [-5, (width - 5) - 1] 范围内的值