When Should You Use the FBX 3D File Format?
What is the FBX file format, and is it the file type you need? Read on to find out what it is, and more importantly, when you should use it.
Key Takeaways
- FBX is a binary data-based 3D file format with a powerful software development kit (SDK.)
- Although it's closed format, FBX is the gold standard for 3D file formats.
- As a binary file format, it's fast and efficient, with good compatibility.
- It can be difficult and costly to maintain, as it has legacy features unlikely to be used.
- Alternative 3D file formats include gITF and the text-based OBJ.
Overview
The Autodesk FBX file format is a popular 3D data interchange format utilized between 3D editors and game engines. It was originally created as the native file format for Kaydara’s Filmbox motion capture tool. The FBX format name and extension is derived from that application name.
In 2005, Kaydara released a public SDK for the otherwise closed and proprietary FBX file format and engaged in a concerted PR campaign to encourage the adoption of the FBX file format for high quality 3D data interchange between different tools. Filmbox was eventually renamed MotionBuilder and was later acquired by Autodesk.
Alternative popular 3D model and scene file formats are the Wavefront OBJ 3D format and the Khronos Group glTF 3D format.
Should you use the FBX 3D file format? It depends on what you are using it for. Below are the pros and cons of the FBX 3D file format.
Pros
Wide Feature Support
The FBX format is the gold standard in its support for a variety of data. FBX supports:
- 3D models
- Scene hierarchy
- Materials lighting
- Animations
- Bones
- Skinning
- Blend shapes
As an older format, it also supports data that isn’t widely used today, such as NURBS surfaces and curves.
When it comes to geometry-related properties, FBX can likely represent the data you need.
Separate Position, UV, and Normal Topologies
A strength of the FBX 3D file format is that it enables the storage of position, UV, and normal data that has different topology. This is great for high quality modeling tools, and enables complex features like accurate subdivision surfaces.
It does, however, make it a bit harder to load these models into game engines, as that data needs to be preprocessed in order to unify all of the topologies.
Fast and Efficient
The FBX file format utilizes a binary format, making it both fast and efficient. The FBX file format is also efficient in terms of space, because binary representations of numbers take up less space than human-readable numbers.
Binary files can often be complex if you need to read and write to them directly, but the FBX SDK hides this completely from the user.
Powerful SDK
If you're a developer using a language supported by the SDK, it is very powerful and convenient to integrate the FBX 3D file format into your application.
The process of adding FBX import and export is a relatively simple and straightforward one that involves linking the SDK and then using its API to stream data in and out. All the complexity of the file format is hidden from the software developer integrating the SDK.
Good Compatibility
The SDK ensures that it can read all previous versions of the FBX file format, so most modern versions of tools can correctly read the FBX files produced by other tools.
Even if the FBX file format changes, the SDK can ensure that it can read both the old format and the new format via different code paths that are transparent to the user of the SDK. If FBX properly supports a feature, it can transfer that data between applications without much concern.
Accordingly, FBX data files can be used to transfer complex 3D scene data easily between Clara.io, 3DS Max, Maya, Unity 3D, and Unreal Engine.
Cons
Closed Format
The biggest downside of the FBX format is that it is a closed format. The only official way to access the data in FBX files is to use the official SDKs. If you want to load an FBX on a system that is not officially supported by the FBX SDK (such as in a web browser or an open source application) you cannot do so.
Because it is a closed format, it is also not possible for anyone outside of Autodesk to evolve the format. Its owners have not recently made many changes to the FBX file format, and as such, it has somewhat stagnated.
Wide Feature Support
While this was listed in the pros, it can also serve as a con. The issue with FBX’s wide data support is that many of its support data types are legacy and not regularly used any more.
FBX supports NURBS surfaces and curves, which are significantly complex to support as they require a full CAD kernel to be part of the FBX SDK. Legacy features like NURBS support adds significant complexity to the FBX file format that make it hard and costly to maintain.
Additionally, its SDK is very large and difficult to integrate into mobile games or other size-restricted applications.
Legacy Materials
The FBX file format uses a 1990s-era, Blinn-Phong spec-glossy model, along with a single color or texture per material property. While this is sufficient for minimalist material representation, it does not reflect the capabilities of modern 3D editors, which utilize complex shader networks in concert with the physically based rendering material model centered around roughness-metalness.
Nor does the simplistic FBX materials support sub-surface scattering, proper layered materials, or anisotropic effects. Because of the severe limits of FBX’s material model, most materials on 3D models have to be redone after they have been transferred between tools via the FBX 3D format.
Legacy Lighting
The lighting model in FBX also uses 1990s-era conventions. Modern games and tools like ThreeKit use a physically based lighting model where all lighting parameters are grounded in physical quantities, such as lumens, luminosity, and physically based falloff.
FBX uses a more historic and arbitrary lighting model, which makes it difficult to communicate between tools that use the more modern and physically-based approaches. As with materials, most lighting information transferred using the FBX file format has to be fixed or redone once it is imported into its target application.
Summary
Use the FBX 3D file format if you want to transfer data between current popular 3D editors (like Maya, Clara.io, and 3DS Max) and 3D experience engines (like Unity and Unreal Engine.) This is primarily what the file format was designed for.
- If your destination platform supports it, using glTF rather than FBX will save you time, because it better transfers material properties.
- For fast real-time transfer to a client application, especially for AR applications, FBX can be slower than a transmission-optimized format like glTF.
- Clara.io supports importing and exporting FBX, glTF, and OBJ 3D file formats.
Looking to create advanced 3D product images?
Threekit provides product visualization software that creates photorealistic images, interactive 3D, and augmented reality experiences that help businesses sell more. With our cutting-edge AI Visual Discovery tool, guided selling has never been easier. To learn more, please schedule a demo with one of our teammates.
Download our eBook
If you’re making the business case for 3D and augmented reality product visuals, this is the guide you need. Get real data on how this innovative technology pays off.