2017-11-09 16 views
1

ここでは、Three.JS MTLローダーとOBJローダーを使用して、モデルとそのモデルのマテリアルを読み込む簡単なスクリプトを作成しました。 モデルをロードすると、最初のオブジェクトの色だけが読み込まれ、残りの部分は白のまま残ります。誰かがこれの原因かもしれないことにいくつかの光を当てることができますか? ここに私のコードですThree.js MTLLoader()は最初のオブジェクトの色のみを読み込みますか?

  var loader = new THREE.MTLLoader(); 
          loader.load('http://ustarp.com/3DModels/WebsiteParts/Polished Aluminum/Underbody/11228.mtl', function (materials) { 
           materials.preload(); 
           var objLoaderOfficeChair = new THREE.OBJLoader(); 
           objLoaderOfficeChair.setMaterials(materials); 
           objLoaderOfficeChair.load('http://ustarp.com/3DModels/WebsiteParts/Polished Aluminum/Underbody/11228.obj', function (object) { 
       object.traverse(function (child) { 
        if (child instanceof THREE.Mesh){ 
            x=document.getElementsByClassName("popup"); // Find the elements 
            for(var i = 0; i < x.length; i++){ 
             x[i].innerHTML += "<li class='mi_child'>"+child.name+"</li>"; // Change the content 


       } 
       } 
      }); 
          object.name = 'Part1'; 
          object.scale.set(50,50,50);obj3d.add(object); 
          object.updateMatrix(); 

            model2 = object; 
           scene.add(object);      
       }); 
      }); 

ここに示しているモデルの例です。

http://ustarp.com/3DModels/?part=2c75cf2681788adaca63aa95ae028b22

答えて

0

あなたのMTLファイルが正しくフォーマットされていません。

# WaveFront *.mtl file (generated by Autodesk ATF) 

newmtl 254,254,255 
Ka 0.996078 0.996078 1.000000 
Kd 0.996078 0.996078 1.000000 
Ks 0.996078 0.996078 1.000000 
Ns 1000.000000 
d 1.000000 

newmtl 229,31,31 
Ka 0.898039 0.121569 0.121569 
Kd 0.898039 0.121569 0.121569 
Ks 1.000000 1.000000 1.000000 
Ns 1000.000000 
d 1.000000 

newmtlは識別子として使用される文字列を取ります。あなたは何ができるか

編集

は、文字列whiteとMTLファイルやOBJファイル内の文字列redishで文字列229,31,31で文字列254,254,255を置き換えています。

+0

あなたは何をしていますか? –

+0

私はAutoDeskからこれらのストレートを生成しています –

+0

@StevenHammons updated answer。 – gaitat

関連する問題