2012-11-13 32 views
2

我有一個循環,我創建了具有不同幾何圖形的多個網格,因爲每個網格都有一個紋理。具有一個幾何圖形和不同紋理的多個網格

for(var i = 0; i < voxels.length; i++){ 
    texture = almacen.textPlaneTexture(voxel.texto,color,voxelSize); 
    material = new THREE.MeshBasicMaterial({ map: texture });      
    object = new THREE.Mesh(new THREE.CubeGeometry(voxelSize, voxelSize, voxelSize, 1, 1, 1, new THREE.MeshBasicMaterial()), material); 
} 

我有一個性能問題,我認爲如果我只能創建一個幾何體,我會得到更好的結果。但我不知道如何爲每個網格創建一個幾何體,並讓每個網格具有不同的紋理。

+0

我嘗試使用獨特的幾何體,但我不知道如何更新每個網格的紋理。 – user1821834

回答

0

你可以網格都有一個幾何形狀,像這樣:

var geometry = new THREE.CubeGeometry(10, 10, 10); 

for(var i = 0; i < N; i++) { 

    texture = new THREE.Texture(...); 

    material = new THREE.MeshBasicMaterial({ map: texture }); 

    mesh = new THREE.Mesh(geometry, material); 

    scene.add(mesh); 

} 

然後,如果你想改變一個紋理,你做這樣的事情:

var texture = new THREE.Texture(...); 
texture.needsUpdate = true; 

mesh.material.map = texture; 

three.js所R.52

相關問題