对于我的一个WebGL项目,我需要生成许多带有索引的对象。
例如,锥体。当JavaScript生成的东西不多时,一切正常
很好,通过在场景中添加其他圆锥体,渲染会出现毛刺。
我很确定问题出在定义索引缓冲区中:
*var iBuffer = gl.createBuffer();
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, iBuffer);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint8Array(glIndices), gl.STATIC_DRAW);*
更具体地讲,它与Unit8Array或其向着色器的过渡有关。
有人可以帮我吗?
最佳答案
如果使用Uint8进行索引,则每个抽奖活动最多只能限制256个唯一顶点,因此,如果对一个批次进行批处理,则可能超过了Uint8的最大值,而整数截断可能意味着您最终会得到有效的随机顶点跨模型的连通性。
增加到Uint16索引将使您每次绘制具有65536个唯一顶点。
关于javascript - WebGL索引数组大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40490355/