【问题标题】:How to merge Meshes with Textures?如何将网格与纹理合并?
【发布时间】:2015-12-11 03:12:35
【问题描述】:

我有几个网格;每个网格都有不同的纹理。现在我想将它们全部合并:

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。

【问题讨论】:

    标签: javascript three.js


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-13
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多