WebGL-GetAttriblLocation:无对象,着色器问题
我的WebGl代码有以下问题WebGL-GetAttriblLocation:无对象,着色器问题,webgl,shader,Webgl,Shader,我的WebGl代码有以下问题 ERROR: WebGL: INVALID_VALUE: getAttribLocation: no object or object deleted 我的绘图功能: function drawScene () { vertexPositionAttribute = gl.getAttribLocation(glProgram, "aVertexPosition"); gl.enableVertexAttribArray(vertexPositi
ERROR:
WebGL: INVALID_VALUE: getAttribLocation: no object or object deleted
我的绘图功能:
function drawScene () {
vertexPositionAttribute = gl.getAttribLocation(glProgram, "aVertexPosition");
gl.enableVertexAttribArray(vertexPositionAttribute);
gl.bindBuffer(gl.ARRAY_BUFFER, trianglesVerticeBuffer);
gl.vertexAttribPointer(vertexPositionAttribute, 3, gl.FLOAT, false, 0, 0);
gl.drawArrays(gl.TRIANGLES, 0, 6);
}
我的着色器已加载、创建并连接到程序,没有任何问题。我链接并使用了该程序。但还是找不到我的错误
顶点:
attribute vec3 aVertexPosition;
void main(void) {
gl_Position = vec4(aVertexPosition, 1.0);
}
片段:
void main(void) {
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
}
感谢您的帮助问题是您试图在
initShaders()
完成创建glProgram
之前绘制场景。请记住,您正在异步下载着色器文件,因此您的drawsecene()
要修复此更改,请在loadFile()
函数中执行以下行,以便执行如下同步请求:
request.open('GET', url, false);
是指向代码工作版本的链接。问题在于,您试图在initShaders()
完成创建glProgram
之前绘制场景。请记住,您正在异步下载着色器文件,因此您的drawsecene()
要修复此更改,请在loadFile()
函数中执行以下行,以便执行如下同步请求:
request.open('GET', url, false);
是指向代码工作版本的链接。您能创建一个JSFIDLE吗?如果没有其余的代码,很难知道。着色器丢失。剩下的你在那里找到了你能做一个jsFiddle吗?如果没有其余的代码,很难知道。着色器丢失。你可以在那里找到其余的