我有几个网格;每个网格都有不同的纹理。现在我想将它们全部合并:
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版。
答案 0 :(得分: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