2012-07-01 148 views
1

我在Blender中建模了兩個對象,並使用不同的材質和不同的紋理UV映射到它們。我正在使用CanvasRenderer在Three.js中加載多個Blender導出的對象/ mesh +材質

如果我是export it,在結果JSON file中有多個材質但只有一個網格。

這是(簡化)代碼,我用它來加載模型three.js所:

var loader = new THREE.JSONLoader(); 
loader.load(myModelPath, function { 

    var material = geometry.materials[0]; 
    material.morphTargets = true; 
    material.overdraw = true; 

    var mesh = new THREE.Mesh(geometry, material); 

    mesh.scale.set(50, 50, 50); 
    mesh.position.set(0, 0, 0); 

    scene.add(mesh); 

}); 

正如你所看到的,我只使用了[0]材料。結果是第二個對象使用第一個對象的材質(如果我使用[1]材質,則會發生相反情況)。

但我不知道如何創建一個使用多種材質的網格!

這有可能嗎?或者,有沒有辦法從Blender中導出多個JSON文件(每個對象一個)?

回答

1

他們可能已經做了改進,json的出口,因爲這個問題被問過,但現在是可能的。在靠近設置底部的導出選項中,所有網格都有一個複選框。取消選中,只有選定的網格會被導出。

+0

Oooh,很高興聽到!我不會檢查它是否有效,但假設它有效,我會接受你的答案。感謝分享信息。 –

3

你知道嗎?有關這種情況的相對簡單的方法。

  1. 模型在攪拌機照常。
  2. 保存爲副本與您擁有的對象一樣多的副本。
  3. 打開每個副本,並且刪除除相關對象以外的所有內容。
    現在你有obj1.blendobj2.blend
  4. 在每個這些,出口到three.js你去。
  5. 加載全部。在我的代碼中,這就像向數組添加字符串一樣簡單。

需要注意的是,如果有要去一個關於它的更直接的方式,我想太瞭解:)

0

您必須使用THREE.ObjLoader。在攪拌機導出設置中,您可以選擇導出選項底部的場景和材質。 Voila

相關問題