用于 ARCore 应用程序开发的 OBJ 文件
Posted
技术标签:
【中文标题】用于 ARCore 应用程序开发的 OBJ 文件【英文标题】:OBJ File for ARCore Application Development 【发布时间】:2018-02-09 15:46:27 【问题描述】:ARCore Sample 中andy.obj
文件的意义是什么?
假设我们将 andy.png 替换为新图像,如何为新图像生成.obj
文件?
【问题讨论】:
【参考方案1】:OBJ 文件描述了几何图形,png 文件描述了要在这个 3D 对象上“拉伸”的纹理。您必须使用像 Blender 这样的 3D 建模程序来创建新模型。
这是在 Blender 中导出 OBJ 文件的方式:https://blender.stackexchange.com/questions/121/how-do-i-export-a-model-to-obj-format
【讨论】:
我已经这样做了,但是当我将新模型 (.obj) 文件与 .mtl 文件一起添加到 arcore 项目(替换 andy.obj)时,当我点击时屏幕上什么都没有显示 嗨 Conti,您检查控制台是否有错误?请注意,在 ARCore 示例代码中,ObjectRenderer 使用简单的 2D 纹理(andy.png 文件),这与 MTL 文件中描述的纹理不同。【参考方案2】:示例代码只能处理只有 1 个纹理文件的最简单的 OBJ 模型。
对于那些复杂的 OBJ 模型,它们通常带有一个 MTL 文件,该文件引用了几个不同的纹理文件。为了能够处理这个问题,您需要对现有代码进行一些额外的工作。如果您对 @https://github.com/JohnLXiang/arcore-sandbox 感兴趣,请查看我为此案例实现的代码。具体可以看一下ObjectRenderer.createOnGlThread()。
【讨论】:
嘿.. 你在 github 上验证过你的代码吗?我正在尝试复制,但它不绘制对象。没有崩溃或任何事情,并进入绘图中材料组的 for 循环。 @ArunReddyKandoor 是的,我做到了。但我也发现我在网上下载的一些 OBJ 出于某种原因无法绘制,我包含在 assets 文件夹中的那些工作正常......对不起,我没有机会研究这个问题 我不确定我做了什么(可能是缩放).. 我现在看到了这些对象,但它们是黑白的。任何线索如何获得真实颜色的对象? @ArunReddyKandoor 抱歉帮不上忙。我还注意到一些纹理文件,即使从我的角度来看它们被正确绑定,它们仍然由于某种原因无法渲染...... @JohnLXiang 你用什么工具导出.OBJ和.MTL(指几个纹理文件)文件?【参考方案3】:要在 Blender 中将纹理导出为图像,请执行以下操作:
选择您的对象并进入编辑模式。选择所有顶点/面(按“a”)。然后启动UV Mapping,按'u'。并选择 UVMapping 的选项之一。您必须为您的模型测试最佳选项。我不确定 ARCore 使用哪个 UV Mapping 映射选项。
然后转到 UV/图像编辑器:
在菜单中导出 UV 布局,并保存您的图像。
【讨论】:
【参考方案4】:要为您的 AR 应用程序创建新的.obj
模型,您需要使用 Autodesk Maya、Autodesk 3dsMax、Blender、SideFx Houdini、Cinema 4D 等 3D 创作软件。这些应用程序可以帮助您创建高质量的多边形模型与对应的.mtl
纹理文件。
.obj .fbx .glTF但是您应该知道,Sceneform 不仅支持
OBJ
格式(不支持动画)而且还支持FBX
(带有动画)和glTF
(不支持动画)格式的3D 资源。
.sfa .sfb也欢迎Sceneform 的
ASCII
和Binary
资产定义:
.mtl .bin .png .jpg .sfm支持的材质文件(也就是您的 3D 资产的纹理)具有以下扩展名:
MTL
、BIN
、PNG
、JPG
和原生 Sceneform 的SFM
。
希望这会有所帮助。
【讨论】:
以上是关于用于 ARCore 应用程序开发的 OBJ 文件的主要内容,如果未能解决你的问题,请参考以下文章