当我尝试将场景从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>
答案 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);