模型照明

时间:2015-04-04 13:27:04

标签: javascript three.js light

使用OBJMTLLoader加载模型后,它会自动设置为MeshLambertMaterial,不幸的是,我无法将其设置为全彩色,纹理看起来更暗。我在场景中设置正确的灯光时遇到了一些问题。

我添加了环境光,但还不够:

scene.add(new THREE.AmbientLight( 0xffffff ));

是否可以关闭'亮度'并使网格朗伯材质在场景中没有任何光线的情况下可见?

1 个答案:

答案 0 :(得分:0)

重新创建材料的两种方法,一种是打开模型文件并手动更改源文件中的材料。或者当使用对象加载器或json加载器时,使用" for"语法来遍历每个材料并设置另一个值

var jsonLoader = new THREE.JSONLoader();
jsonLoader.load(model, addthree1ToScene);

                      function addthree1ToScene( geometry, materials ) 
                      {
                          var materiall = new THREE.MeshFaceMaterial( materials ); 


                          for ( var i = 0; i < materials.length; i ++ )
                          {
                           var material = materials[i];
                              material.side = THREE.DoubleSide; /// there you can set attributes
                          }

                          three1 = new THREE.Mesh( geometry, materiall );



                          three1.position.set(x,y,z);



                          scene.add( three1 );
                          console.log(three1);

                      }