2014-08-31 36 views
-1

我有幾個網格;每個網格都有不同的紋理。現在我想合併它們全部:如何合併網格與紋理?

mergedGeo.merge(mesh.geometry, mesh.matrix); 

這工作正常。

但是,當我想合併網添加到場景中,他們大約在每個網格紋理信息丟失:

mergedGeo.computeFaceNormals(); 
group = new THREE.Mesh(mergedGeo, new THREE.MeshBasicMaterial({ color: parseInt("ffffff", 16) })); 
group.matrixAutoUpdate = false; 
group.updateMatrix(); 
scene.add(group); 

我使用的修訂68.

回答

1

每一個面都必須有一個適當的材料指數。

合併的幾何形狀像這樣,每次遞增materialIndexOffset,從0開始:

mergedGeo.merge(mesh.geometry, mesh.matrix, materialIndexOffset); 
... 

然後構建材料陣列:

var materials = []; 
materials.push(material1); 
materials.push(material2); 
.... 

然後創建目:

mesh = new THREE.Mesh(mergedGeo, new THREE.MeshFaceMaterial(materials)); 

three.js r.68