3d转变构件色彩

// 修正色彩

overrideColorOnFragments(fragIds,color,objs,sceneName) {
    var material = new THREE.MeshPhongMaterial( { color: "#"+color,emissive:"#"+color,transparent:true})
    material.opacity=0.8;
    for (var j=0; j<fragIds.length; j++) {
        var mesh = viewer.impl.getRenderProxy(viewer.model, fragIds[j]);
        var myProxy = new THREE.Mesh(mesh.geometry, material);
        var box = new THREE.BoundingBoxHelper( myProxy ,0xffffff);
        myProxy.matrix.copy(mesh.matrixWorld);
        myProxy.matrixAutoUpdate = false;
        myProxy.matrixWorldNeedsUpdate = true;
        myProxy.frustumCulled = false;
        myProxy.dbid = objs[0];
        this.viewer.impl.addOverlay(sceneName, myProxy);
    }
}

overrideColorOnObj(objs,color,sceneName) {
    // initOverlays(color)
    var _this = this;
    this.viewer.getObjectTree(function(objTree) {
        for (var i=0; i<objs.length; i++) {
            var frags = [];
            objTree.enumNodeFragments(objs[i], function(fragId) {
                frags.push(fragId);
                _this.overrideColorOnFragments(frags,color,objs,sceneName);
            });

        }
    });
}
    原文作者:weijie
    原文地址: https://segmentfault.com/a/1190000019026302
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞