fragment shader Webgl ERROR: 0:7: 'return' : function return is not matching type:

fragment shader Webgl ERROR: 0:7: 'return' : function return is not matching type:

我不明白为什么 return 类型不匹配。

使用 webgl 错误:0:7:'return':函数 return 不匹配类型:

precision mediump float;
uniform sampler2D previousState;

  float NablaAHelper(vec2 coord){
    if (coord.x < 0.0 || 64.0 < coord.x || coord.y < 0.0 || 64.0 < coord.y) return 0;
    vec4 px = texture2D(previousState, coord/64.0);
    return px.r;<--------
   }

  void main(void) {
    vec2 coord = vec2(gl_FragCoord);
    float NablaA =
        NablaAHelper(coord+vec2(0.,0.))*-1.0+
        ....  

我认为您被行号误导了。也许无论您使用什么来上传着色器都会在开头添加一些行,可能是 #version 指令。

问题很明显

if (coord.x < 0.0 [...]) return 0;

因为 GLSL 1.0 ES 中没有隐式类型转换。