模型照明

Model illumination

本文关键字:照明 模型      更新时间:2023-09-26

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

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

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

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

有两种方法可以重新创建材质,一种是打开模型文件并手动更改源文件中的材质。或者,当使用usilg对象加载器或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);
                      }