我需要有完整的模型使用默认材料(例如灰色),然后使用外部定义的材料的每个节点。
于是我找了一些建议两点:1)设置所有节点上默认的材料。 2)设置材料/色彩对于给定的节点他们从外部源获取的后。
难道这在某些时候做模型加载到观众面前? (即服务器端)?如果不是,可以将它在观众做些什么呢?
从锻造未来所有几何图形始终拥有它定义了一些材料,但你可以遍历的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);
});
}
}