2013-11-04 68 views
1

我已經從turbosquid下載了免費模型。它包含一個obj和mtl,以及紋理(高光,凹凸貼圖等)。現在我只對mtl和obj文件感興趣。所以我下載了一個免費的車型from here(這是一輛車)。然後,我使用此代碼加載的模型:OBJMTLLoader:忽略mtl文件

var loader= new THREE.OBJMTLLoader(); 
loader.load("./L200-Obj/L200-Obj.obj","./L200-Obj/L200-Obj.mtl",function(object) { 
    scene.add(object); 
} 

我已經檢查的路徑,他們是OK(我試圖登錄object,它是一個活的有效的對象)。現在的問題是,我看到一個黑屏,原因是mtl文件以某種方式「不被考慮」。如果我嘗試添加材料:

object.traverse(function(child) { 
    child.material= someMaterial; 
}); 

然後我看到,我已經設置了材料的車,車的形狀很好。我也嘗試加載紋理:

var map= THREE.ImageUtils.loadTexture("./L200-Obj/truck_color-silver.jpg"); 
var bumpMap= THREE.ImageUtils.loadTexture("./L200-Obj/truck_bump.jpg"); 
var specularMap= THREE.ImageUtils.loadTexture("./L200-Obj/truck_spec.jpg"); 
var material= new THREE.MeshPhongMaterial({ 
    map: map, 
    specularMap: specularMap, 
    bumpMap: bumpMap 
}); 
// Set it as material with the above code 

而且他們沒事,車子看起來不錯,但問題是:不應該的OBJ和MTL文件足以顯示汽車與它的顏色?即使我沒有設置材料,我是不是應該用顏色看車子?難道我做錯了什麼?

+0

您鏈接到的車型被描述爲使用四邊形......我認爲這不是由THREE.js處理的? – steveOw

回答

2

看看記事本中的mtl文件。列出圖像文件的名稱。也許當你創建mtl文件時,到那時它的位置的路徑仍然在mtl文件中。如果是這樣,並且您的mtl與obj位於同一文件夾中,只需重命名mtl中的文件,就好像它們與obj位於同一文件夾中即不需要該路徑。您可以在寫字板中編輯文件名。