2014-08-31 76 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