ARKit / ARCore开发中的3D模型基础知识

时间:2017-10-04 03:25:16

标签: 3d augmented-reality arkit arcore

我是iOS和Android的AR游戏开发初学者。我有以下问题:

  1. iOS ARKit和Android ARCore分别支持哪种3D模型格式? (我试过.dae并且.obj受ARkit支持,尚未测试ARCore。)

  2. 我们的3D模型供应商只能提供FBX格式。如何将其转换为ARKit和ARCore支持的格式?我尝试使用3D模型转换器,但转换后的模型没有纹理。

4 个答案:

答案 0 :(得分:2)

ARcore本身并没有配备任何3D模型处理逻辑。要以任何格式渲染3D模型,您需要解析数据并使用openGL绘制它。包中的示例应用程序演示了如何为简单的3D模型(即1 OBJ和1个纹理文件)执行此操作。

答案 1 :(得分:0)

我不确定您是否正确检查了ARCore。 Google提供的基本示例正在使用.obj格式。 ARCore是一组仅与AR相关的工具。您可以随意使用3D格式,只要您能够在Android上使用它。它与ARCore无关 问题2与ARCore和/或android甚至arkit

无关

答案 2 :(得分:0)

ARKit并不关心模型格式,因为ARKit本身并不显示3D模型(或其他任何东西)。

ARKit提供供更高级渲染引擎使用的信息 - Apple的SceneKit或SpriteKit,第三方Unreal或Unity插件,或者您使用Metal或OpenGL自行构建的引擎。渲染引擎负责绘制相机源并覆盖3D内容以创建AR幻象,并使用ARKit提供的信息来令人信服地进行。

我对ARCore并不了解,但从各方面来看,它在Android生态系统中扮演着同样的角色 - 它的Unity,Unreal或其他一些处理3D模型的引擎也是如此。

因此,像这样的问题特定于您使用使用 ARKit / ARCore的3D引擎。 SceneKit可以直接处理DAE和OBJ,还可以通过Model I / O处理更多格式(请参阅MDLAssetSCNScene. init(mdlAsset:))。对于Unreal,Unity以及您使用ARCore处理的任何其他内容...请参阅这些技术的文档。

答案 3 :(得分:0)

Apple SceneKit框架可处理ARKit的3D模型。 SceneKit支持以下带有相应材质文件的3D资源:

  • .dae(带有或不带有动画)
  • .obj(单帧)
  • .abc(单帧)
  • .usdz(带有或不带有动画)
  • .scn(本机场景格式)

Google Sceneform处理ARCore SDK的3D模型。 Sceneform支持以下3D资源及其材料依赖性:

  • .obj(具有.mtl依赖性)
  • .glTF(不支持动画)
  • .fbx(带有或不带有动画)
  • .sfa(ASCII资产定义)
  • .sfb(二进制资产定义)

ARKit和ARCore都不关心3D几何的导入和渲染。他们只关心跟踪,场景理解和光线估计。

  

SceneKit Sceneform 均支持基于物理的渲染(PBR)。

希望这会有所帮助。