在锻造浏览器模型默认材料

问题描述 投票:0回答:1

我需要有完整的模型使用默认材料(例如灰色),然后使用外部定义的材料的每个节点。

于是我找了一些建议两点:1)设置所有节点上默认的材料。 2)设置材料/色彩对于给定的节点他们从外部源获取的后。

难道这在某些时候做模型加载到观众面前? (即服务器端)?如果不是,可以将它在观众做些什么呢?

autodesk-forge autodesk-viewer autodesk-model-derivative
1个回答
1
投票

从锻造未来所有几何图形始终拥有它定义了一些材料,但你可以遍历的dbid模型上的所有对象,并设置自定义three.js所料他们使用这些方针的东西:

function setCustomMaterial(viewer, dbids) {
    const material = new THREE.MeshPhongMaterial({
        color: 0xAB00EE,
        specular: 0xEEABEE
    });
    viewer.impl.matman().addMaterial('CustomMaterial', material, true);
    const fragList = viewer.model.getFragmentList();
    const instanceTree = viewer.model.getData().instanceTree;
    for (let dbid of dbids) {
        instanceTree.enumNodeFragments(dbid, function(frag) {
            fragList.setMaterial(frag, material);
        });
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.