2013-12-08 4 views
2

У меня есть основная проблема (я думаю), когда я пытаюсь экспортировать сцену из Blender в Babylon.js. Я думаю, что я действительно не понимаю, как работают текстуры.babylon.js texture from blender

Давайте рассмотрим базовый пример. Я создаю новую сцену на 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

Понял! При использовании текстур с Babylon.js, вы должны развернуть UV-карту перед применением текстуры в Blender! –

+1

вы должны опубликовать это как ответ – JohnB

ответ

2

Shivaan Keldon (который задал этот вопрос) ответил на комментарий:

Понял! При использовании текстур с Babylon.js, вы должны развернуть UV-карту перед применением текстуры в Blender!

1

Найти diffuseTexture атрибут из test.babylon файла и заменить все значения атрибута с изображения пути, например:

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

или добавить значение текстуры с помощью Javascript, например:

вар 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

Смежные вопросы