ARCore应用开发中的OBJ文件

8

andy.obj文件在ARCore示例中的意义是什么?

假设我们将andy.png替换为新图像,如何为新图像生成.obj文件?

4个回答

6

我已经完成了这个操作,但当我将新的模型(.obj)文件与.mtl文件一起添加到ARCore项目中(替换andy.obj),当我点击屏幕时无法出现任何东西。 - Conti
2
嗨Conti,你有检查控制台的错误吗?请注意,在ARCore示例代码中,ObjectRenderer使用简单的2D纹理(andy.png文件),这与MTL文件中描述的纹理不同。 - Quent1V

2
样例代码只能处理最简单的OBJ模型,这些模型只有一个纹理文件。
对于那些复杂的OBJ模型,它们通常会附带一个MTL文件,该文件引用了几个不同的纹理文件。为了能够处理它们,您需要在现有代码上进行一些额外的工作。如果您感兴趣,可以查看我为此情况实现的代码 @https://github.com/JohnLXiang/arcore-sandbox。具体来说,您可以查看ObjectRenderer.createOnGlThread()。

嘿..你在github上验证过你的代码了吗?我正在尝试复制它,但它没有绘制对象。没有崩溃或其他问题,并且进入了draw中材质组的for循环。 - Arun Reddy Kandoor
@ArunReddyKandoor 是的,我做了。但是我发现一些我从网上下载的OBJ文件由于某种原因无法绘制出来,而那些我放在资源文件夹中的文件却正常工作...抱歉我还没有机会研究这个问题。 - JohnLXiang
我不确定我做了什么(也许是缩放)...现在我看到了这些对象,但它们是黑白的。有什么线索可以让这些对象呈现真实的颜色吗? - Arun Reddy Kandoor
@ArunReddyKandoor 抱歉,无法提供帮助。我也注意到对于一些纹理文件,即使从我的角度来看它们已经正确绑定,但由于某些原因仍无法呈现... - JohnLXiang
@JohnLXiang 你用了哪个工具来导出.OBJ和.MTL(这指的是多个纹理文件)文件? - Khurram Shehzad

1
要在Blender中将纹理导出为图像,请执行以下操作:
选择您的对象并进入编辑模式。选择所有顶点/面(按“a”键)。然后开始UV映射,按“u”键。选择UV映射选项之一。您必须测试最适合您模型的选项。我不确定ARCore使用哪种UV映射选项。

enter image description here

然后进入UV/Image编辑器:

enter image description here

在菜单中导出UV布局,并保存您的图片。

enter image description here


0

如果您想为您的AR应用程序创建一个新的.obj模型,您需要使用3D创作软件,如Autodesk Maya、Autodesk 3dsMax、Blender、SideFx Houdini、Cinema 4D等。这些应用程序可以帮助您创建具有相应.mtl纹理文件的高质量多边形模型。

但是您应该知道,Sceneform不仅支持OBJ格式的3D资产(其中不支持动画),还支持FBX(带有动画)和glTF(不支持动画)。

  • .obj
  • .fbx
  • .glTF

Sceneform的ASCIIBinary资产定义也受到欢迎:

  • .sfa
  • .sfb
支持的材质文件(即您的3D资产的纹理)具有以下扩展名:MTLBINPNGJPG和本地Sceneform的SFM

  • .mtl
  • .bin
  • .png
  • .jpg
  • .sfm

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接