15

范围是gl_FragCoord.xy多少?我知道gl_FragCoords 是屏幕坐标,但实际范围是多少?( 0, width - 1 )还是( 1, width )gl_FragCoord.x - 5当我进行一些基于 fragcoord 的计算时,glsl 编译器会生成什么样的错误(如果有)说我做了类似的事情?

ps:我不需要标准化。

4

2 回答 2

17

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);
}

实际结果是:gl_FragCoord.xy在 [0.5, 1023.5] 范围内,而不是 [0.0, 1023.0]。

于 2018-08-15T08:04:04.470 回答
3

gl_FragCoord 坐标从 0 开始索引。

该表达式gl_FragCoord.x - 5将产生 [-5, (width - 5) - 1] 范围内的值

于 2013-05-29T23:13:51.397 回答