.obj 到 .glb 的转换
Posted
技术标签:
【中文标题】.obj 到 .glb 的转换【英文标题】:.obj to .glb conversion 【发布时间】:2018-08-13 00:54:04 【问题描述】:我想制作一个可以将 .OBJ 文件转换为 .GLB 文件的 android 应用程序。
我对此进行了相当多的研究,但我还没有找到任何我确信可以在 Android 应用程序中用于 .OBJ 到 .GLB 转换的库。我最初认为 Assimp 库将是最好的选择:http://cms.assimp.org/index.php。然而,仔细观察后,.GLB 似乎只被列为导入格式而不是导出格式:https://github.com/assimp/assimp 所以这大概意味着我可以使用 Assimp 将 .GLB 转换为另一种格式,但不能转换为 .GLB 从另一种格式。
对于可能值得研究的替代策略的任何建议,我将不胜感激。肯定有一些解决方案,但我不能立即看到它可能是什么!
【问题讨论】:
这需要离线进行,还是您可以使用 API? obj2gltf 是最可靠的选项,但可能应该在服务器上运行。 另外,如果你能找到一个 OBJ parser,那么有 Java 库可以序列化为 glTF...你只需要传递数据。另外,也许jgltf-obj? 嗨,唐。我查看了 obj2gltf 但得出了相同的结论——因为它是在 javascript 中,所以它必须在服务器上运行,我认为这并不理想。我现在正在研究 jgltf-obj,碰巧 - 这似乎是最有希望的选择。 我发现关于 jgltf 库的一件事是某些代码需要 Android API 24 或更高版本。正如 KimKulling 的回答中所建议的那样,我现在计划调查 Assimp 替代方案。 【参考方案1】:您可以为您的 android 版本使用 Assimp-lib 构建(据我所知,应该适用于 android-cmake 的 4.1.0)。然后,您可以使用这些功能导入 obj 文件并将其导出为 glb 文件。要在那里写入文件,您需要使用 android-filesystem。
可以在我们的 wiki 如何为 android 构建 assimp 中找到一个简短的解释(检查 this here)。或者您可以尝试我们的特殊构建脚本,该脚本位于here。
如果您遇到任何问题,只需创建问题报告。
【讨论】:
谢谢,我会调查的。我被推迟更彻底地探索 Assimp,因为 GLB 被明确列为导入格式,而不是导出格式。在支持的导出格式部分,它没有明确提到 GLB,但列出了 glTF 1.0 和 2.0,说它们有“部分”支持。不过我会调查一下,谢谢。 @CKP78 你测试过这个方法吗?最后找到什么解决方案?谢谢。以上是关于.obj 到 .glb 的转换的主要内容,如果未能解决你的问题,请参考以下文章