Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

3D model formats in ARKit / ARCore development

I am a beginner at AR game development for both iOS and Android. I have the following questions:

  1. What kinds of 3D model formats are supported by ARKit for iOS and ARCore for Android respectively? (I tried .dae and .obj are supported by ARkit, not yet test ARCore.)

  2. Our 3D model vendor can only provide us FBX format. How can I convert it to the formats supported by ARKit and ARCore? I tried using 3D model converter, but the converted model has no texture.

like image 826
Funny LI Avatar asked Oct 04 '17 03:10

Funny LI


1 Answers

Updated: April 22, 2022.


SceneKit

Apple SceneKit framework handles 3D models for ARKit and 3D apps. SceneKit supports the following 3D assets with corresponding material files:

  • .dae (with or without animations)
  • .obj (single-frame) with its texture and .mtl file
  • .abc (only single-frame supported)
  • .usdz (with or without animations)
  • .scn (native SceneKit's scene format)


RealityKit

Apple's RealityKit framework also handles 3D models for ARKit. You can prototype a content for RealityKit in a standalone app called Reality Composer. RealityKit supports the following 3D assets:

  • .usdz (with or without animations)
  • .reality (with or without animations and dynamics) – Made for much faster loading time
  • .rcproject (with or without animations and dynamics)

Additionally you can use Terminal's usdzconvert command to get .usdz from the following formats:

  • .obj
  • .glTF
  • .fbx
  • .abc
  • .usda
  • .usdc
  • .usd

And, of course, you can use Reality Converter app with its simple GUI.


Sceneform

Pity but since June 2020 Sceneform has been archived and no longer maintained by Google.

Google Sceneform handles 3D models for ARCore SDK. Sceneform supports the following 3D assets with their material dependencies:

  • .obj (with its .mtl dependency)
  • .glTF (animations not supported)
  • .fbx (with or without animations)
  • .sfa (ascii asset definition, deprecated in Sceneform 1.16)
  • .sfb (binary asset definition, deprecated in Sceneform 1.16)

SceneKit, RealityKit, Sceneform and Reality Composer support Physically Based Rendering.


ARKit and ARCore

But what's the role of ARKit and ARCore then?

These two AR modules don't care about importing and rendering of a 3D geometry. They only care about tracking and scene understanding (i.e. plane detection, hit-testing & raycasting, depth perception, light estimation, and geometry reconstruction).

like image 101
Andy Jazz Avatar answered Oct 13 '22 20:10

Andy Jazz