我在 WebGL 中创建了一个小应用程序,我有两个移动的对象,一个立方体和一个球体。我用着色器修改对象,每个对象都有它的着色器。所以我想在确定的时间更新显示器上的对象,为此我使用drawElements
函数。
对于每个对象,我都有一个缓冲区,其中包含顶点缓冲区中的面索引:
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STREAM_DRAW);
indexCount = indices.length;
indices 是一个数组,其中包含每个面的索引值。(每个面 3 个值,我们使用三角形)。
因此,在此之后,为了绘制我所做的对象的三角形:
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
gl.drawElements(gl.TRIANGLES, indexCount, gl.UNSIGNED_SHORT, 0);
但是我的屏幕上什么都没有,而且我有这个警告:
WebGL:INVALID_OPERATION:drawElements:属性设置不正确
我的错误可能是什么?
谢谢