当前,我正在一个项目中,我需要绘制一个N * N大小的网格。 这里N的大小可以为998。我已经成功绘制了尺寸为108 * 108的矩阵。但是当我尝试绘制尺寸为216 * 216时,它仅显示了矩阵的一半。结果可以在给定的图像中看到
我尝试调试,但是我很确定代码中的所有内容都是正确的。
这是我的实现方式。
答案 0 :(得分:1)
我还没有完全阅读您的代码,但是当我使用Uint16Array
来存储索引时遇到了类似的问题。这意味着您正在使用的顶点数量将需要使用32位索引缓冲区。
尝试将您的代码更改为:
var indices = new Uint32Array(nrElems * nrElems * 2 * 3);
var linesIndices = new Uint32Array(nrElems * nrElems * 2 * 4);
对于您的gl.drawElements
通话,请使用gl.UNSIGNED_INT
而不是gl.UNSIGNED_SHORT
。
根据gman的评论,您还必须检查是否启用OES_element_index_uint扩展名,否则会收到错误消息
您可能对此answer
也感兴趣