ThreeJS OBJLoader + MTLLoader - 模型显示为黑色

时间:2018-06-02 20:44:18

标签: javascript three.js objloader mtl-file

我在为我的一个型号加载颜色时遇到了一些麻烦。我正在使用OBJloader和MTLloader。 .obj和.mtl文件是从blender导出生成的(没有使用.png / .tga文件的纹理)。 MTL文件完美地加载到其他模型上,但由于某种原因,此模型仅显示为黑色。

以下是我使用的MTLLoader:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/MTLLoader.js

以下是无效的.mtl文件:

newmtl Material_1
Ns -1.960784
Ka 0.000000 0.000000 0.000000
Kd 0.000000 0.000000 0.000000
Ks 0.194444 0.194444 0.194444
Ke 0.000000 0.000000 0.000000
Ni 0.000000
d 1.000000
illum 2

newmtl Material_2
Ns -1.960784
Ka 0.000000 0.000000 0.000000
Kd 0.000000 0.000000 0.000000
Ks 0.986111 0.986111 0.986111
Ke 0.000000 0.000000 0.000000
Ni 0.000000
d 1.000000
illum 2

newmtl Material_3
Ns -1.960784
Ka 0.000000 0.000000 0.000000
Kd 0.000000 0.000000 0.000000
Ks 0.187500 0.187500 0.187500
Ke 0.000000 0.000000 0.000000
Ni 0.000000
d 1.000000
illum 2

newmtl Material_4
Ns -1.960784
Ka 0.000000 0.000000 0.000000
Kd 0.000000 0.000000 0.000000
Ks 0.263889 0.263889 0.263889
Ke 0.000000 0.000000 0.000000
Ni 0.000000
d 1.000000
illum 2

以下是完美运行的.mtl文件示例:

newmtl car_body
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.693878 0.084748 0.084748
Ks 0.108100 0.108100 0.108100
Ke 0.000000 0.000000 0.000000
Ni -1.000000
d 1.000000
illum 2

newmtl car_body_1
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 1.000000 1.000000 1.000000
Ks 0.100000 0.100000 0.100000
Ke 0.000000 0.000000 0.000000
Ni -1.000000
d 1.000000
illum 2

newmtl engine_grille
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.000000 0.005952 0.051020
Ks 0.117000 0.117000 0.117000
Ke 0.000000 0.000000 0.000000
Ni -1.000000
d 1.000000
illum 2

newmtl glass
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.282521 0.704611 0.948980
Ks 0.100000 0.100000 0.100000
Ke 0.000000 0.000000 0.000000
Ni -1.000000
d 1.000000
illum 2

newmtl headlight
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.847328 0.944020 1.000000
Ks 0.100000 0.100000 0.100000
Ke 0.000000 0.000000 0.000000
Ni -1.000000
d 1.000000
illum 2

newmtl rear_lights
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.847328 0.944020 1.000000
Ks 0.100000 0.100000 0.100000
Ke 0.000000 0.000000 0.000000
Ni -1.000000
d 1.000000
illum 2

newmtl wheels
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.142857 0.142857 0.142857
Ks 0.100000 0.100000 0.100000
Ke 0.000000 0.000000 0.000000
Ni -1.000000
d 1.000000
illum 2

这是JavaScript:

var bird = new THREE.Object3D();
var mtlLoader = new THREE.MTLLoader();
mtlLoader.load( 'bird.mtl', function( materials )
{
   var objLoader = new THREE.OBJLoader();
   objLoader.setMaterials( materials );
   objLoader.load( 'bird.obj', function ( object )
   {
      bird.add( object );
   });
});
scene.add( bird );

任何人都知道为什么上面的.mtl文件没有正确加载,只显示为黑色?

乔金姆

0 个答案:

没有答案