我需要使用一个尺寸为1x1x1的立方体构建地形,坐标以.txt文件形式提供,并且大约有11M三元组。绘制一百万次的立方体
问题是,使用我当前的代码,我只能画出大约60k,然后浏览器选项卡被重置,并提示停止无响应的脚本出来,所以我用了太多的内存和时间来生成它们。
这里的代码块我用它来吸引他们:
function generateCubes(data) {
var cubeGeometry = new THREE.CubeGeometry(cubeSize, cubeSize, cubeSize);
var material = new THREE.MeshLambertMaterial({color: 0x587058});
var mesh = new THREE.Mesh(cubeGeometry, material);
var mergedGeo = new THREE.Geometry();
var instance;
var line = data[0].split(';');
var translateX = line[0], translateY = line[1], translateZ = line[2];
//var group = new THREE.Object3d();
for(var i = 0; i < 100000; i++) { // should go to data.length
line = data[i].split(';');
//instance = mesh.clone();
//instance.position.set(line[0] - translateX, line[2] - translateZ, line[1] - translateY);
//group.add(instance);
mesh.position.x = Number(line[0]) - translateX;
mesh.position.y = Math.round(Number(line[2]) - translateZ);
mesh.position.z = Number(line[1]) - translateY;
mesh.updateMatrix();
mergedGeo.merge(instance.geometry, instance.matrix);
}
group = new THREE.Mesh(mergedGeo, material);
scene.add(group);
}
的功能是从所谓的成功在$就调用。
评论部分使用没有合并的几何,这样我可以绘制大约100k的数据。
谢谢你帮助我。
编辑:我看到this question它并没有帮助我很多。
你应该看看这个例子:http://alteredqualia.com/three/examples/webgl_cubes.html – gaitat
我敢肯定你不能得出11M对象与个别平局甚至是从C调用++。看看[instancing](http://blog.tojicode.com/2013/07/webgl-instancing-with.html) –