如何在加载到场景之前将OBJ / FBX转换为GLTF(使用Threejs)

时间:2019-11-21 05:56:23

标签: javascript three.js 3d fbx gltf

我正在尝试创建一个Web应用程序,用户可以在其中上传obj / fbx文件并在浏览器中查看它们。我已经使用了Threejs提供的OBJLoader和FBXLoader,并且一切正常。但是,我想在将它们加载到场景之前 将这两个模型都转换为GTLF (出于一致性)。

如何在threejs中实现?我知道threejs有一个GTLF导出器,但是我不知道如何为我的目的利用它。

1 个答案:

答案 0 :(得分:0)

您可以通过两种方式执行此操作:

方法1:

  • 使用服务器上的本机库(例如obj2gltf和fbx2gltf),从OBJ或FBX转换为glTF。
  • 在网络应用中加载glTF文件。

方法2:

  • 使用OBJLoader或FBXLoader加载OBJ或FBX,为您提供三个网格或其他对象。
  • 使用GLTFExporter将THREE.Mesh转换为glTF文件。
  • 使用GLTFLoader加载glTF文件,再次为您提供THREE.Mesh或其他对象。

方法1较难,但由于本机库可以访问FBX SDK,因此可以为您提供更好的转换结果。方法2相当简单,但是我想这样做没有任何好处……加载OBJ或FBX之后的网格(最好)与最后得到的网格相同。最糟糕的是,通过GLTFExporter-> GLTFLoader进行的往返可能会引入性能或正确性问题。