babylon.js纹理从搅拌机

时间:2013-12-08 10:08:39

标签: javascript webgl blender texture-mapping babylonjs

当我尝试将场景从Blender导出到Babylon.js时,我有一些基本问题(我认为)。我想我真的不明白纹理是如何工作的。

我们来看一个基本的例子。我在Blender上创建了一个新场景。有一个灯,一个相机和一个立方体。我对多维数据集选项没有任何改动。我只是在标准材质上应用jpg纹理。它看起来像这样:

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

我使用Babylon导出器来获取.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>

2 个答案:

答案 0 :(得分:3)

Shivaan Keldon(问过这个问题)在评论中回答了这个问题:

  

知道了!在Babylon.js中使用纹理时,必须在Blender中应用纹理之前解开UV贴图!

答案 1 :(得分:1)

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

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

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

var floorMaterial = newScene.materials [3];

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