多亏了它的配套.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文件。有没有办法把这两个结合起来?我似乎在任何地方都找不到任何与此相关的东西。提前谢谢。
发布于 2017-07-19 15:38:56
您正在覆盖材料。您要做的是只通过更改发射值来修改它:
object.traverse (function (child) {
if (child instanceof THREE.Mesh) {
child.material.emissive.setHex( 0xFFFFFF );
}
});https://stackoverflow.com/questions/45183730
复制相似问题