bindBuffer 操作是否取决于绑定(bind)缓冲区大小?例如,我有一个要绘制的索引数组,还有一些顶点缓冲区(我的顶点源),例如,第一个是 100 个顶点,第二个是 10000000 个顶点缓冲区(所有已创建的缓冲区)。问题是更改(或绑定(bind))顶点缓冲区是否取决于它们的大小? Ofcource 渲染和创建缓冲区取决于缓冲区大小,但为了精炼,我只对 bindBuffer 操作性能感兴趣。 感谢您的任何建议。
请不要指出绑定(bind)的含义顺序,我只关注性能:
gl.bindBuffer(gl.ARRAY_BUFFER, coordinatesBuffer0);
gl.vertexAttribPointer(sha.coordinates._pName, coordinatesBuffer.itemSize, gl.FLOAT, false, 0, 0);
gl.bindBuffer(gl.ARRAY_BUFFER, coordinatesBuffer1);
gl.vertexAttribPointer(sha.coordinates._pName, coordinatesBuffer.itemSize, gl.FLOAT, false, 0, 0);
gl.bindBuffer(gl.ARRAY_BUFFER, coordinatesBuffer3);
gl.vertexAttribPointer(sha.coordinates._pName, coordinatesBuffer.itemSize, gl.FLOAT, false, 0, 0);
等等。等等等等以及大约的地方
this.gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
this.gl.drawElements(gl.TRIANGLES, indexBuffer.numItems, this.gl.UNSIGNED_SHORT, 0);
最佳答案
bindBuffer
只是设置一个指向给定缓冲区地址的内部指针,它与缓冲区大小无关。
关于javascript - Webgl bindBufer 和 vertexAttribPointer 是否取决于缓冲区大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41957844/