gl_FragCoord 值始终保持不变
gl_FragCoord values always remain static
我正在尝试读取 gl_FragCoord x、y 和 z 值并根据它们为我的三角形着色。问题是我的三角形总是呈现黄色。
据我所知,gl_FragCoord 是一个传递给像素着色器以描述 'playheads' 位置的变量,所以我期待 gl_FragCoord.x/y/z 值进行更改,我的三角形将以某种渐变呈现,但呈现黄色。我错过了什么?
顶点着色器:
uniform mat4 uMVPMatrix;
attribute vec4 vPosition;
void main()
{
gl_Position = uMVPMatrix * vPosition;
}
像素着色器:
precision mediump float ;
void main()
{
gl_FragColor = vec4( gl_FragCoord.x, gl_FragCoord.y, gl_FragCoord.z, 1 );
}
gl_FragCoord 给出 window 像素坐标中的片段位置(window,而不是视口!)。这意味着,除了最左下角的像素外,该值为 >= 1
.
另一方面,gl_FragColor 需要 0…1 范围内的浮点值,并裁剪该范围之外的值。
剩下的你自己想。
我正在尝试读取 gl_FragCoord x、y 和 z 值并根据它们为我的三角形着色。问题是我的三角形总是呈现黄色。
据我所知,gl_FragCoord 是一个传递给像素着色器以描述 'playheads' 位置的变量,所以我期待 gl_FragCoord.x/y/z 值进行更改,我的三角形将以某种渐变呈现,但呈现黄色。我错过了什么?
顶点着色器:
uniform mat4 uMVPMatrix;
attribute vec4 vPosition;
void main()
{
gl_Position = uMVPMatrix * vPosition;
}
像素着色器:
precision mediump float ;
void main()
{
gl_FragColor = vec4( gl_FragCoord.x, gl_FragCoord.y, gl_FragCoord.z, 1 );
}
gl_FragCoord 给出 window 像素坐标中的片段位置(window,而不是视口!)。这意味着,除了最左下角的像素外,该值为 >= 1
.
gl_FragColor 需要 0…1 范围内的浮点值,并裁剪该范围之外的值。
剩下的你自己想。