这里是我的顶点和片段着色器:
<script id="shader-fs" type="x-shader/x-fragment"> precision mediump float; uniform sampler2D uSampler; varying vec4 vColor; varying vec2 vTextureCoord; void main(void) { gl_FragColor = vColor; // gl_FragColor = texture2D(uSampler,vec2(vTextureCoord.s,vTextureCoord.t)); } </script> <script id="shader-vs" type="x-shader/x-vertex"> attribute vec3 aVertexPosition; attribute vec4 aVertexColor; attribute vec2 aTextureCoord; uniform mat4 uMVMatrix; uniform mat4 uPMatrix; varying vec4 vColor; varying vec2 vTextureCoord; void main(void) { gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition,1.0); vColor = aVertexColor; // vTextureCoord = aTextureCoord; } </script>
这是我的着色器初始化器:
function initShaders() { var fragmentShader = getShader(gl,"shader-fs"); var vertexShader = getShader(gl,"shader-vs"); shaderProgram = gl.createProgram(); gl.attachShader(shaderProgram,vertexShader); gl.attachShader(shaderProgram,fragmentShader); gl.linkProgram(shaderProgram); if (!gl.getProgramParameter(shaderProgram,gl.LINK_STATUS)) { alert("Could not initialise shaders"); } gl.useProgram(shaderProgram); shaderProgram.vertexPositionAttribute = gl.getAttribLocation(shaderProgram,"aVertexPosition"); gl.enabLevertexAttribArray(shaderProgram.vertexPositionAttribute); shaderProgram.vertexColorAttribute = gl.getAttribLocation(shaderProgram,"aVertexColor"); gl.enabLevertexAttribArray(shaderProgram.vertexColorAttribute); shaderProgram.textureCoordAttribute = gl.getAttribLocation(shaderProgram,"aTextureCoord"); gl.enabLevertexAttribArray(shaderProgram.textureCoordAttribute); shaderProgram.pMatrixUniform = gl.getUniformlocation(shaderProgram,"uPMatrix"); shaderProgram.mvMatrixUniform = gl.getUniformlocation(shaderProgram,"uMVMatrix"); shaderProgram.samplerUniform = gl.getUniformlocation(shaderProgram,"uSampler"); }
错误来自这一行:
gl.enabLevertexAttribArray(shaderProgram.textureCoordAttribute); >> enabLevertexattribarray index out of range
我该如何处理?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。