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

问题描述 投票:0回答:1

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

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

javascript three.js 3d fbx gltf
1个回答
0
投票

有两种方法可以执行此操作:

方法1:

  • 使用服务器上的本机库,例如obj2gltf和fbx2gltf,从OBJ或FBX转换为glTF。
  • 将glTF文件加载到Web应用程序上。

方法2:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.