It’s a hotly debated topic when it comes to 3D rendering: Which file format is the “right” one? There are pros and cons depending on the user and intended application, and updates and innovations are cropping up all the time.
This is the first in a 10-Part series: "Ben Houston's Ultimate Guide to 3D File Formats". Over the next several weeks, we’ll be laying out the options, considerations and necessary context to help you make the right file format choice for your needs.
|Ben Houston's Ultimate Guide to 3D File Formats|
|Part 1: glTF||Part 2: USD/USDZ||Part 3: FBX 3D||Part 4: OBJ 3D||Part 5: STEP||Part 6: glTF v. FBX 3D|
There is a new rich 3D model format in town called glTF, and it has been rising in prominence. This article will tell you everything you need to know about glTF including what it is, why it was developed, and who is using it.
What is glTF?
Why is glTF needed?
The creators of glTF could see the internet rising in prominence and realized that there was a need for an efficient modern 3D format that could be used to transfer 3D models and scene data.
Before glTF, there were two popular formats for transmitting 3D model data between 3D creation tools and 3D game engines: FBX and OBJ. Here at Threekit, our platform supports both FBX and OBJ. Since we have built import and export features for an abundance of 3D related file formats into our Threekit platform – including OBJ and FBX and glTF – we have intimate experience with both.
The FBX format has a number of features, but they're generally dated. Furthermore, the format itself is proprietary and can only be loaded by a huge proprietary C++ SDK. There is really no chance of FBX being directly loaded in a web browser. OBJ has a limited feature set, is also quite dated, and is incredibly inefficient in terms of storage space and the ability to quickly read and write data. While OBJ files can be loaded in a web browser, it's a very slow experience.
Unlike OBJ and FBX, glTF is very efficient at transferring 3D model data, and it has a very rich set of features. Writing a loader for glTF is fast and efficient, and glTF is an open standard. In short, it meets the goals it was set out to achieve.
Who is using glTF?
gITF is being put to use in a number of industries. It can be imported and exported by our Threekit platform as well as the Clara.io 3D editor. Our clients, including Crate & Barrel, are using glTF to support their in-app AR experiences. Additionally, Google is exploring using glTF for its 3D advertisements, and Microsoft allows you to take a glTF file and embed it into a Powerpoint or Word document. On Facebook, you can create interactive 3D posts using the glTF format like the one below:
What is next for glTF?
glTF’s adoption is bound to grow. Godot wrote a great post on all the reasons why it should be the standard asset exchange format.
In the e-commerce space, more and more websites are going to be offering their glTF 3D models to the end user. Users of a brand’s or manufacturer’s website will be able to view the product they are researching in 3D directly on the website. With platforms like Threekit, they will also be able to configure and customize those products. The key element of such an offering is the ability for the end user to download and preview their configured and personalized goods on their phone in AR or to add their content to room designers.
3D content creation tools, like Clara.io, Maya and Blender, will import and export glTF files and game engines like Unreal Engine and Unity will import them.
On the feature front, there is a concerted push to add higher fidelity model support to the glTF format as well as a shader network materials. If these changes go through, it is quite possible that in the future, the glTF format will replace the need for the proprietary FBX file format.
Editor's Note: This post has been updated with additional content and details.
Threekit is product visualization software that creates photorealistic images, interactive 3D and augmented reality experiences that help businesses sell more. To learn more, please schedule some time with one of our teammates.