我需要使用一個尺寸爲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) –