【问题标题】:babylon.js texture from blender来自搅拌机的 babylon.js 纹理
【发布时间】:2013-12-25 11:20:14
【问题描述】:

当我尝试将场景从 Blender 导出到 Babylon.js 时,我遇到了一些基本问题(我认为)。我想我不太了解纹理的工作原理。

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

我使用 Babylon 导出器来生成 .babylon 文件。但是当我导入它时,没有应用纹理。

结果:

我真的不明白为什么... 导入纹理时有什么特别的事情要做吗?

这是我的导入代码:

<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>

【问题讨论】:

  • 明白了!在 Babylon.js 中使用纹理时,必须先打开 UV 贴图,然后再在 Blender 中应用纹理!
  • 您应该将其发布为答案

标签: javascript webgl blender texture-mapping babylonjs


【解决方案1】:

Shivaan Keldon(提问者)在评论中回答:

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

【讨论】:

    【解决方案2】:

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

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

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

    var floorMaterial = newScene.materials[3];

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

    【讨论】:

    • 或使用 javascript 添加纹理值,例如:var floorMaterial = newScene.materials[3]; var floorTexture = new BABYLON.Texture("images/06.jpg", newScene);
    • 请将评论中的代码添加到答案的主体中。
    猜你喜欢
    • 2016-06-05
    • 2017-05-08
    • 2023-03-26
    • 2016-05-09
    • 2013-10-05
    • 2017-06-28
    • 2014-12-23
    • 2015-11-15
    • 2018-05-21
    相关资源
    最近更新 更多