javascript – 使用WebGL索引缓冲区绘制网格物体

3 index buffers问一个更难的问题,但我觉得他们的主要问题归结为我的:有没有办法使用索引缓冲区在WebGL中多次访问同一个顶点而不是复制顶点?
我能找到的只是使用索引缓冲区将纹理,法线等与模型中的顶点相关联.我无法找到一种方法来使用索引缓冲区来告诉drawArrays访问位置数组中顶点的顺序.

解决方法:

是的,使用gl.drawElements并将带有顶点索引的缓冲区上传到gl.ELEMENT_ARRAY_BUFFER.

... upload vertex data to buffers, vertexAttribPointer them.

gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indicesBuffer);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indicesData, gl.STATIC_DRAW);
gl.drawElements(gl.TRIANGLES, indicesData.length/3, gl.UNSIGNED_SHORT, 0);

有关完整示例,请参见https://developer.mozilla.org/en/WebGL/Creating_3D_objects_using_WebGL.

上一篇:javascript – Three.js:全景立方体放大并过渡到不同的全景立方体


下一篇:WebGL 着色器偏导数dFdx和dFdy介绍