Glsl WebGL在尝试设置ATEXTRACTRECORD参数时返回错误

Glsl WebGL在尝试设置ATEXTRACTRECORD参数时返回错误,glsl,webgl,shader,Glsl,Webgl,Shader,我有一个简单的webGL程序,我几乎是复制粘贴。出于某种原因,我成功地创建了一个立方体,边上有单一的颜色,顶部和底部有纹理,纹理是可见的,但我不确定闪电是否正确设置。我正在尝试修复一个错误,这是下面的一个错误,我注意到,当我尝试使用ATEXTRARECORD参数启动着色器时,该错误恰好发生。下面是我的着色器和我尝试使用的javascript代码。有人能弄明白为什么会这样吗。 属性highp vec3异常; 属性highpvec3; 属性highp vec2 ATEXTROCORD uniform

我有一个简单的webGL程序,我几乎是复制粘贴。出于某种原因,我成功地创建了一个立方体,边上有单一的颜色,顶部和底部有纹理,纹理是可见的,但我不确定闪电是否正确设置。我正在尝试修复一个错误,这是下面的一个错误,我注意到,当我尝试使用ATEXTRARECORD参数启动着色器时,该错误恰好发生。下面是我的着色器和我尝试使用的javascript代码。有人能弄明白为什么会这样吗。 属性highp vec3异常; 属性highpvec3; 属性highp vec2 ATEXTROCORD

uniform highp mat4 uNormalMatrix;
uniform highp mat4 uMVMatrix;
uniform highp mat4 uPMatrix;

varying highp vec3 vLighting;
varying highp vec2 vTextureCoord;

void main(void) {
  gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);
  vTextureCoord = aTextureCoord;

  highp vec3 ambientLight = vec3(0.6, 0.6, 0.6);
  highp vec3 directionalLightColor = vec3(0.5, 0.5, 0.75);
  highp vec3 directionalVector = vec3(0.85, 0.8, 0.75);

  highp vec4 transformedNormal = uNormalMatrix * vec4(aVertexNormal, 1.0);

  highp float directional = max(dot(transformedNormal.xyz, directionalVector), 0.0);
  vLighting = ambientLight + (directionalLightColor * directional);
 }
</script>
我在运行程序时出现以下错误

 WebGL: INVALID_OPERATION: drawElements: attribs not setup correctly
希望有人能回答这个问题,因为我花了整整10个小时在这个问题上,但不知道为什么会这样。

“attribs未正确设置”也意味着

  • 您没有设置任何程序。换句话说,您没有使用有效的程序调用
    gl.useProgram

  • 您使用
    gl.enableVertexAttributeArray
    打开了一个属性,但没有通过调用
    gl.bindBuffer(gl.ARRAY\u buffer,someBuffer)为其分配缓冲区
    在某个点后调用
    gl.vertexattributepointer
    ,将当前绑定的
    ARRAY\u BUFFER
    分配给指定的属性

  •  WebGL: INVALID_OPERATION: drawElements: attribs not setup correctly