gl_FragCoord.xy
的范围是多少?我知道 gl_FragCoord
是屏幕坐标,但实际范围是多少? ( 0, width - 1 )
还是 ( 1, width )
?当我做一些基于 fragcoord 的计算时,glsl 编译器会生成什么样的错误(如果有的话)说我做了类似 gl_FragCoord.x - 5
的事情?
ps:我不需要归一化。
最佳答案
我通过使用以下着色器代码和 glReadPixels(0, 0, 1024, 1024, GL_RED, GL_FLOAT, xxx)<对
从我的帧缓冲区对象获取着色器的输出,并且 FBO 附加了内部格式为 gl_FragCoord.xy
的实际范围进行了测试GL_R32F
的纹理。
out highp vec4 Output;
void main()
{
Output = vec4(gl_FragCoord.xy, 0.0, 1.0);
}
实际结果是:gl_FragCoord.xy
在 [0.5, 1023.5] 范围内,而不是 [0.0, 1023.0]。
关于c++ - gl_FragCoord 的范围是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16825412/