【问题标题】:gl_FragCoord values always remain staticgl_FragCoord 值始终保持静态
【发布时间】:2015-11-04 06:08:44
【问题描述】:

我正在尝试读取 gl_FragCoord x、y 和 z 值并根据它们为我的三角形着色。问题是我的三角形总是呈现黄色。

据我所知,gl_FragCoord 是一个传递给像素着色器以描述“播放头”位置的变量,所以我期待 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 );
}

【问题讨论】:

    标签: android opengl-es glsl


    【解决方案1】:

    gl_FragCoord 在窗口像素坐标(窗口,而不是视口!)中给出片段位置。这意味着,除了最左下角的像素外,该值为>= 1

    另一方面,gl_FragColor 需要 0…1 范围内的浮点值,并裁剪该范围之外的值。

    剩下的由你来计算。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 2013-05-09
      • 2021-10-06
      相关资源
      最近更新 更多