0
我在WebGL中创建了一个小应用程序,我有两个移动的对象,一个立方体和一个球体。 我用着色器修改对象,每个对象都有着色器。所以我想在确定的时候在显示器上更新对象,为此我使用了drawElements
函数。drawElements use
对于每个对象我有一个包含在顶点缓冲器面的索引的缓冲液:
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STREAM_DRAW);
indexCount = indices.length;
指数是包含各面的索引的值的数组。 (每个脸部3个值,我们使用三角形)。
所以,在此之后,该对象的平局三角形我做的:
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
gl.drawElements(gl.TRIANGLES, indexCount, gl.UNSIGNED_SHORT, 0);
但我在屏幕上什么都没有,我有这样的警告:
的WebGL:INVALID_OPERATION:drawElements:attribs没有正确设置
什么可能是我的错误?
感谢
感谢您的答复,我接着说:gl.vertexAttribPointer(shaderMaterial.attributes.aPosition,3,gl.FLOAT,假,0,0);'但是我有同样的问题。 我使用库THREE.js版本53,shaderMaterial允许在对象的纹理上使用着色器。 – lanfeustXIII