WebGL的常见错误

注: canvas全屏的时候不要用 canvas.style.width 和canvas.style.height 给100%, 图像会失真;

        直接  canvas.width = window.innerWidth; canvas.height = window.innerHeight;    或者

        canvas.width = document.documentElement.clientWidth; canvas.height = document.documentElement.clientHeight

        来充满全屏;

1. WebGL: INVALID_VALUE: vertexAttribPointer: index out of range
原因:gl.getAttribLocation(shaderProgram, 'aVertexPosition')  变量取不到值,(变量名对不上请仔细对照定义的变量名);

2. 没有报错物体不显示

原因: gl.uniformMatrix4fv 参数有空undefined被传入

3.GL ERROR :GL_INVALID_OPERATION : glDrawArrays: attempt to access out of range vertices in attribute 0

原因: 创建新的buffer时 上一个的buffer没有进行gl.bufferData操作;

4.ERROR :GL_INVALID_ENUM : glTexParameteri: param was GL_CLOSE_PATH_NV

原因:gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINERA); gl.LINEAR写错

5. INVALID_OPERATION: drawElements: no buffer is bound to enabled attribute

原因: gl.enableVertexAttribArray() 参数传了undefined

6.RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.

原因: 缺少gl.texImage2D(gl.TEXTURE_2D, level, internalFormat, width, height,border,srcFormat, srcType, pixel);

            

7. Failed to execute 'attachShader' on 'WebGLRenderingContext': parameter 2 is not of type 'WebGLShader'.

原因: vsSource或者fsSource 格式错误错误

原文地址:https://www.cnblogs.com/zhigu/p/12425132.html