2

当我尝试将场景从 Blender 导出到 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>
4

2 回答 2

3

Shivaan Keldon(提出这个问题的人)在评论中回答了这个问题:

知道了 !在 Babylon.js 中使用纹理时,必须先打开 UV 贴图,然后再在 Blender 中应用纹理!

于 2014-06-30T22:19:06.270 回答
1

diffuseTexture从文件中查找属性test.babylon并将所有属性值替换为您的图像路径,例如:

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

或使用 javascript 添加纹理值,例如:

var floorMaterial = newScene.materials[3];

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

于 2016-05-02T09:15:03.833 回答