使用OBJMTLLoader加载模型后,它会自动设置为MeshLambertMaterial,不幸的是,我无法将其设置为全彩色,纹理看起来更暗。我在场景中设置正确的灯光时遇到了一些问题。
我添加了环境光,但还不够:
scene.add(new THREE.AmbientLight( 0xffffff ));
是否可以关闭'亮度'并使网格朗伯材质在场景中没有任何光线的情况下可见?
答案 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);
}