Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改THREE.js中的Collada材质属性,同时保留贴图_Three.js_Hierarchy_Collada - Fatal编程技术网

更改THREE.js中的Collada材质属性,同时保留贴图

更改THREE.js中的Collada材质属性,同时保留贴图,three.js,hierarchy,collada,Three.js,Hierarchy,Collada,基本上,我希望动态更改collada对象的环境光和镜面反射值,同时保持原始纹理。所以我想要这样的东西: var changeMaterial = function(node, ambient, specular) { if (node.material != null) { var material = new THREE.MeshPhongMaterial(); material.clone(node.material); material.

基本上,我希望动态更改collada对象的环境光和镜面反射值,同时保持原始纹理。所以我想要这样的东西:

var changeMaterial = function(node, ambient, specular) { 
    if (node.material != null) {
       var material = new THREE.MeshPhongMaterial();
       material.clone(node.material);
       material.ambient = ambient;
       material.specular = specular;
       node.material = material;
    }   
    if (node.children) {
       for (var i = 0; i < node.children.length; i++) {
          setMaterial(node.children[i]);
       }
    }
}

为什么要创建新材质?只需执行以下操作:
material.specular.set(0x050505)
material.specular.setRGB(.1.1.1)
<代码>材质.环境通常应与
材质.颜色
匹配。
material.map = node.material.map;