In order to use the amazing 3D models and animation for your Augmented Reality experiences, you need to export them in 3D model formats. Each Augmented Reality platform understands a few model formats and there are several. It is really tricky to handle multiple 3D model formats to work with each AR platform.
3D model formats
AR platforms rely on graphics technologies to draw (or render) 3D objects. A 3D model format stores information such as the 3D mesh, animations, materials, textures, and lighting. Unfortunately, there are several formats and each graphics system relies on a different set of formats. Let us look at a few formats we work with.
COLLADA (COLLAborative Design Activity) is a widely supported 3D model format. COLLADA documents are typically identified by a .dae file extension. Most platforms support this format, including SceneKit (iOS), Unity, and WebGL. Textures or image files are kept separate and are not packed into a single file. Also, COLLADA is not a binary format.
We use COLLADA when we work across tools within our company. However, we do not recommend using this format to work directly in applications.
FBX (Filmbox) is also a widely supported format and the files are usually identified by a .fbx file extension. FBX has reliable implementations across 3D software and is especially very good with supporting animations and bones. However, SceneKit, the graphics platform provided by iOS, does not support this format natively.
We do not recommend using this format for applications directly. We could use this format to import animations into Facebook AR Studio and other software as an intermediate step.
OBJ (Wavefront) is a standard format supported by many software applications, identified by .obj file extension. One downside to OBJ is that it represents mesh geometry alone. The visual appearance or material information is stored in a separate file (or files) with a .mtl extension. The format does not have units as well. While the simplicity of the format makes it very reliable to support across applications, we do not recommend using this format to work directly in applications.
gfTF (.gltf and.glb)
glTF (GL Transmission Format) is a more recent 3D model format described as the JPEG of 3D. glTF supports a binary format, usually identified as a .glb file extension and a text format, usually identified as a .gltf extension. The self-contained binary format packs textures/images as well. As a result, the model format is very attractive to use because a single file is sufficient.
The support for this format has recently become prevalent among several applications.
- Facebook AR Studio and Facebook 3D Posts support glTF 2.0.
- Unity, SceneKit for iOS, SceneForm for ARCore have support for glTF.
We recommend using glTF as a format for applications and our users.
Apple announced support for USDZ (Universal Scene Description) format as part of ARKit 2. iOS 12's Quick Look feature allows users to experience AR directly from various system applications such as Messages, Mail, Safari, etc.
For iOS applications and users, USDZ is a powerful format to use.
Most of the AR platforms we work with support glTF (iOS, Unity, WebGL) and USDZ (iOS) now. These are our preferred 3D model format for application.