从blender导出到three.js时导出对象的位置错误

时间:2017-03-30 12:13:50

标签: javascript three.js blender

我将一个简单的场景从blender导出到三个。除了没有出现的纹理(我也与之抗争),我对物体的位置有一个奇怪的问题。这是它在搅拌机中的样子:

render result in blender

这就是它在三个中呈现的方式

render result in three

正如您所看到的,元素彼此堆叠(并且天空盒纹理缺失,即使它在json中正确引用,嵌入为base64图像)。我使用Three.js exporter v 1.5.0,three.js v84和blender v 2.77

这是我的配置:

blender configuration

这里是加载场景的代码:

  var loader = new THREE.ObjectLoader();

  loader.load(
      '../dist/landscape.json',
      function ( obj ) {
        scene.add(obj)
      }
  );

现在,我确实意识到这种方式我将场景添加到场景中但出于某种原因,如果我尝试从中提取孩子:

loader.load(
  '../dist/landscape.json',
  function ( obj ) {
    obj.children.forEach(function(elem) {
       scene.add(elem)
    }
  }
)

我只获得了一半的物品。不知道为什么。此外,物体仍然堆叠在一起。我检查了结果中的位置与混合器中的原始值,除了标准的y / z交换x值相反(虽然这不是问题的原因),并且从桥上移除了旋转使它倒置。我完全失去了

此外,还有.blend和.json文件:

http://www.filehosting.org/file/details/653174/landscape.blend http://www.filehosting.org/file/details/653175/landscape.json

编辑: 部分解决方案:导出器中的Scale设置为10,导致对象看起来好像放错了位置。问题是,它们仍然是旋转的,与原版相比还存在一些不匹配。图片在这里:

scale 1.0 applied

1 个答案:

答案 0 :(得分:0)

我再一次为自己遇到过这个问题。将比例设置为1并没有解决它。问题是我在Blender中没有applied object transformations

  1. 在您的blender文件中选择所有有问题的对象(或者仅使用 A 选择所有对象)
  2. CTRL + A
  3. 选择Rotation & Scale
  4. 如有必要,请重复Location