我在AAAAAAAAAAAAAGAAAAGGGAATTTAAGGAGTCCCAGAGACAGGAGAATTCAGGACAATTTGCACCAATCACTTGCTCCTGGAAAGGAAGGTTGGGC{/T}GATTTGGGGTTGGTAAGCACAGACCTTTCATCCGTTCGTA{/G}AAAGAAGGAAAATTAAATCTCATGGCCTGTTTGTGAAAGGAAATTGCCCAGAATAGCTCTGACAGAATAAGCTATTCCACAATAGCTCCCCATGCGGACACTCCAGCCACTTTGTTCCAGGCTAATTAGTGTGCTTCCAAGCGCAGTAATTATCCTGG
中加载的时间超过40k vertices
。
虽然有效,但几何图形并未完全呈现。将几何体分解为BufferGeometry
的单独块后,它就可以工作了。我正在使用40k vertices
。
这是与我正在使用的硬件有关还是与三个version r86
有关?
请在下面找到我用于创建js
的代码的改编(normalgeom是作为参数传递的几何)
BufferGeometry
之后,我正在从缓冲区
创建LineSegmentsvar positions = new Float32Array(chunkLength * 3);
var indices = new Uint16Array(chunkLength);
var chunkLength = normalgeom.vertices.length;
for (var i = 0; i < chunkLength; i++)
{
var posInNormalGeom = i;
positions[i * 3] = normalgeom.vertices[posInNormalGeom].x;
positions[i * 3 + 1] = normalgeom.vertices[posInNormalGeom].y;
positions[i * 3 + 2] = normalgeom.vertices[posInNormalGeom].z;
indices[i] = i;
}
var buffGeom = new THREE.BufferGeometry();
buffGeom.addAttribute('position', new THREE.BufferAttribute(positions, 3));
buffGeom.setIndex(new THREE.BufferAttribute(new Uint16Array(indices), 1));
更新:在@ TheJim01发表评论后,分割几何的代码如下
var lineSegs = new THREE.LineSegments(buffGeom, material);
scene.add(lineSegs);
答案 0 :(得分:1)
你有847666个顶点,这导致了847666个索引,这远远超出了Uint16Array
(max = 65535)的范围。
要缓解此问题,请改用Uint32Array
。所有现代浏览器(任何结果)都支持WebGL缓冲区的32位数组。