不能使用THREE.JSONLoader加载从FBX转换到JSON模型

Can't load converted from FBX to JSON model using THREE.JSONLoader

本文关键字:转换 FBX JSON 模型 加载 THREE JSONLoader 不能      更新时间:2023-09-26

我使用convert-to-threejs.py将FBX模型转换为JSON,但我无法获得three.js (r58)来加载它。它说"未捕获的类型错误:无法读取属性'length' of undefined"。错误出现在three.js的9930行,这一行是for ( i = 0; i < json.uvs.length; i++ ) ...

下面是转换后的JSON: http://pastebin.com/86ZGvKnW。您将看到它实际上没有uvs属性。

convert-to-threejs.py过时了吗?如果是这样,还有什么选择呢?如果没有,我怎么能得到这个模型加载?

下面是我的代码:

window.loader = new THREE.JSONLoader();
loader.load('jet.json', function(geometry) {
    // Never gets to here; error is thrown first
    console.log(geometry);
});

哦,我明白了。实际的模型嵌入在该JSON文件中。我想要embeds["Embed_31_jet 3"]

转换成JSON的FBX文件似乎可以描述完整的场景。所以,用THREE.SceneLoader代替THREE.JSONLoader

例如

  var scene = new THREE.Scene();
  var camera = new THREE.PerspectiveCamera(...);
  var loader = new THREE.SceneLoader();
  loader.load('jet.json', function(res) {
      scene.add(res.scene);
      renderer.render(res.scene, camera);
  });