由于其伴随的.mtl文件,我已经成功加载了一个.obj模型,其中正确的材质映射到模型上。但目前加载的模型非常暗,所以将发光颜色改为白色是一个好主意,但我找不到办法。我有这个:
MTLLoader.setTexturePath( '../models/' );
MTLLoader.setPath( '../models/' );
var url = "model.mtl";
MTLLoader.load( url, function( materials ) {
materials.preload();
OBJLoader.setMaterials( materials );
OBJLoader.setPath( '../models/' );
OBJLoader.load( 'model.obj', function ( object ) {
scene.add( object );
});
});
我试过这样做:
object.traverse (function (child) {
if (child instanceof THREE.Mesh) {
child.material = new THREE.MeshLambertMaterial({emissive: 'white'});
}
});
它自己创建一个自发光材料,但忽略我的.mtl文件。有没有办法可以将两者结合起来?我无法在任何地方找到与此相关的任何内容。提前致谢。
答案 0 :(得分:1)
你正在覆盖这些材料。你想要做的是仅通过改变发射值来修改它:
object.traverse (function (child) {
if (child instanceof THREE.Mesh) {
child.material.emissive.setHex( 0xFFFFFF );
}
});