.Obj和.mtl文件的3d模型查看器

时间:2019-05-02 06:23:29

标签: android opengl-es-2.0 native 3d-model sceneform

我正在尝试将3d模型集成到我的android应用程序中,为此,我需要3d模型查看器,该查看器可以加载材质和纹理文件,.dae,.fbx,.obj。

我需要没有ARCore的3d模型查看器。所以我不能同时使用ARCore和sceneform。

我已经使用OpenGL es- 2.0 Android API,以便可以加载.obj文件及其.mtl文件,以便可以看到预期的结果。检查了两个主要的github项目andresoviedo/android-3D-model-viewerdbrant/ModelViewer3D

我还检查了场景是否可以在没有ARCore的情况下独立运行。浏览了sceneform overview的google文档。

Sceneform仍在开发中,以在没有ARCore的情况下为3d建模提供全面支持。选中了此tutorial。检查了Sceneform和ARCore的Google存储区中的问题,即当前Sceneform无法实现来自MTL文件的自定义材料。

因此,到目前为止,我已经放弃了使用Sceneform的想法。并专注于使用OpenGL库进行3D模型渲染。

添加了一些Sceneform屏幕截图。 下面的示例是obj和mtl文件。

refer here for files

这是预期的输出 This is expected output

这就是渲染方式 This is how it is rendered

在此库中:andresoviedo/android-3D-model-viewer 我试图在同一文件夹中用.mtl文件加载.obj模型,但是此项目忽略了.mtl文件的某些属性,例如Tf,Ka和Ks。因此,此项目仅使用作为我的模型的弥散精简的Kd并显示它,而未按预期进行渲染。

在此库中:dbrant/ModelViewer3D他们提供了镜面,环境和漫射光,而没有使用对象的.mtl文件。 因此,我使用该库创建了一个演示,可以在其中设置我的自定义属性(镜面反射,漫射和环境光)。但是同样,我需要从我的.mtl文件中解析它们。

我仍然无法使用OpenGL解析带有.fbx,.dae,.obj的基本格式及其材质和纹理文件的Android合适的3d模型查看器。

谁能建议在没有ARCore的Android应用程序中显示3D模型的最佳选择是什么?

我试图更改上述库的顶点着色器和片段着色器,以便可以为其提供自定义值,但到目前为止没有成功。

任何人的帮助将不胜感激。 预先感谢。

0 个答案:

没有答案