scenekitarkitarcoresceneformrealitykit

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.


Solution

  • Updated: October 30, 2024.

    SceneKit

    Apple SceneKit framework loads 3D models for ARKit and VR apps. SceneKit supports the following 3D formats with corresponding material files:


    RealityKit

    Apple RealityKit framework loads 3D models for AR and VR apps. You can prototype a content for RealityKit in a standalone app called Reality Composer Pro. RealityKit supports the following 3D formats:

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

    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. However, Sceneform (high-level framework) still works in older apps, and even partially works in apps written from scratch in 2024. Today, Google recommends developers to create AR/VR apps either using Filament (mid-level) or OpenGL-based (low-level framework).

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

    SceneKit, RealityKit, Sceneform and Reality Composer Pro 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 are only responsible for tracking (world, image, face, geo, etc) and scene understanding (i.e. plane detection, hit-testing & raycasting, depth perception, light estimation, and geometry reconstruction).