2013-12-08 266 views
2

我有一些基本問題(我認爲),當我嘗試從Blender導出場景到Babylon.js。我想我不太瞭解紋理是如何工作的。Babylon.js質地從攪拌器

讓我們舉一個基本的例子。我在Blender上創建了一個新場景。有合適的燈光,相機和立方體。我在多維數據集選項上沒有改變。我只是在標準材質上應用jpg的紋理。它看起來像這樣:

https://puu.sh/5FU6k.jpg

我用的是巴比倫出口有.babylon文件。但是當我輸入它時,紋理不適用。

結果:

https://puu.sh/5FUcM.jpg

我真的不明白爲什麼... 是否有一些特別的東西做的,使紋理被導入?

這裏是我的導入代碼:

<script> 
var canvas = document.getElementById("renderCanvas"); 
var engine = new BABYLON.Engine(canvas, true); 
BABYLON.SceneLoader.Load("", "test.babylon", engine, function (newScene) { 
    // Wait for textures and shaders to be ready 
    newScene.executeWhenReady(function() { 
     // Attach camera to canvas inputs 
     newScene.activeCamera.attachControl(canvas); 

     // Once the scene is loaded, just register a render loop to render it 
     engine.runRenderLoop(function() { 
      newScene.render(); 
     }); 
    }); 
}, function (progress) { 
    // To do: give progress feedback to user 
}); 
</script> 
+0

Got it!當在Babylon.js中使用紋理時,在Blender中應用紋理之前,必須展開UV貼圖! –

+1

你應該發佈,作爲回答 – JohnB

回答

2

Shivaan Keldon(誰問的問題)在評論的答案是:

明白了!當在Babylon.js中使用紋理時,在Blender中應用紋理之前,必須展開UV貼圖!

1

查找diffuseTexture屬性從test.babylon文件,並與您的圖像路徑如更換所有屬性值:

"diffuseTexture":{"name":"images/16.png"} 

或使用添加紋理值的JavaScript例如:

VAR floorMaterial = newScene.materials [3 ]。

var floorTexture = new BABYLON.Texture(「images/06.jpg」,newScene);

+0

或使用JavaScript添加紋理值例如:var floorMaterial = newScene.materials [3]; var floorTexture = new BABYLON.Texture(「images/06.jpg」,newScene); –

+0

請將評論中的代碼添加到您的答案的主體中。 – NSNoob