我是iOS和Android的AR游戏开发初学者。我有以下问题:
iOS ARKit和Android ARCore分别支持哪种3D模型格式? (我试过.dae
并且.obj
受ARkit支持,尚未测试ARCore。)
我们的3D模型供应商只能提供FBX格式。如何将其转换为ARKit和ARCore支持的格式?我尝试使用3D模型转换器,但转换后的模型没有纹理。
答案 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处理更多格式(请参阅MDLAsset
和SCNScene.
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)。
希望这会有所帮助。