如何在android中显示3D模型?

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

我想使用 android studio 在 Android 应用程序中显示一些 3D 模型(.obj 文件)。

用户输入一些数据,模型必须根据用户输入相对于彼此放置。

所以我只需要根据之前输入的数据显示一些相对放置的3D模型,用户滑动屏幕就可以从任何方向看到模型。

我不知道如何实现这个。我尝试使用 OpenGL-ES,但没有成功,因为我找不到足够的教程,而且文档很难理解。

欢迎任何帮助或建议。

提前致谢。

java android android-studio 3d opengl-es
3个回答
7
投票

在 GitHub 上找到这个 3D 查看器(支持 OBJ、GLTF)

另外,我相信可以找到一些转换器 OBJ ~> GLTF (由 Khronos 提供)。您可以编写带有嵌入式 Web 视图的 Android 应用程序,您可以在其中显示 GLTF。

如果有人使用一些 HTML / JS 框架(如 Phonegap 或 VueJS + Quasar)来开发 Android 应用程序,那么 GLTF 可能是一个不错的选择(如果 OBJ ~> GLTF 不是问题)。


3
投票

您可以使用SceneForm来完成这项工作。简而言之,SceneForm 用作 ARCore 和 Filament 之间的中间件来创建出色的增强现实应用程序,但您也可以使用 SceneForm 只是为了可视化GLTF-模型


0
投票

我知道这已经有一岁了,但是当我试图分享我的(可查看的)对象时偶然发现了它,我已经能够将它“网格”在一起(有趣的文字游戏)到内置的服务/应用程序,以便其他可能没有安装我正在构建的应用程序的人可以查看模型...可能是 SceneForm?或者至少有 ARCore 的东西...

无论哪种方式都可以帮助解决你的问题,因为我觉得我有同样的问题,并且能够通过 webview 和 Three.js 库解决它。

尝试使用 openGL 需要/需要比我更多的努力/时间/理解。现有的库并不真正支持带有纹理的 .obj 和 .mtl,它们似乎都专注于更新/更好的替代方案。我正在使用的源数据只有 .obj/.mtl,我没有办法进行运行时转换。

https://thirdjs.org/manual/#en/load-obj

通过 Three.js 提供的这个解决方案对我帮助很大,需要进行一些小的调整才能实现我的最终目标。因此,如果您遇到进一步的麻烦并分享更多详细信息,我很乐意看看是否可以提供帮助。 (注意,如果尺寸/相机相差很大,仅交换 obj 源将无济于事,您还需要将相机“重新聚焦”到您的对象)。

V/R

编码员同事

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