3D file formats
Which 3D file formats move assets between tools and engines, what each is good and bad at, and which to use for a game pipeline.
A 3D file format is the container that carries meshes, and sometimes materials, animation and whole scenes, from one program to another. For game work you mostly need two kinds: the native format of your modeling tool, where you keep your working file, and an exchange format you export to the engine.
Unity's manual lists what a model file can hold: "meshes, materials, textures" and, for animated characters, animation data (Unity 6.6 Manual: Models). Not every format carries all of these.
#Format comparison
| Format | Typical use in a game pipeline | Strengths | Limits |
|---|---|---|---|
FBX (.fbx) |
The default exchange format for Unreal and Unity | "A 3D and animation interchange format"; Unity and Unreal both treat it as their primary import format (aras-p.info) | Proprietary, owned by Autodesk, with "no public spec" ; scale and axis settings are easy to get wrong |
OBJ (.obj) |
Simple static meshes, sculpt and scan exchange | Fast to read: Blender's C++ importer is 10–300× faster than its old Python one (aras-p.info) | Has obscure corners, such as NURBS curves and line continuations, that importers still have to handle |
glTF (.gltf, .glb) |
Godot, web and real-time viewers | Actively developed in Blender, with a recent export option for named vertex colours (Blender Developer Documentation) | Unreal and Unity still treat FBX, not glTF, as their primary import format (aras-p.info) |
USD (.usd, .usda, .usdc) |
Large scenes, layout and film or virtual-production pipelines | Growing support; Blender 4.5 added USD export of text objects and writes MaterialX materials as OpenPBR Surface (Blender Developer Documentation) | Support is still changing release by release; Blender 4.5 added USD import of animated camera properties and skeleton rest poses |
COLLADA (.dae) |
Legacy exchange | Unity still lists a scale factor for .dae (Unity 2019.4 Manual) |
Deprecated in Blender 4.5, with removal announced for 5.0 (Digital Production) |
Native (.blend, .ma/.mb, .max) |
Your working source file | Keeps modifiers, history and everything else your tool knows | Unity can import them only with the authoring software installed, and says "You should not use these file formats in production" (Unity 6.6 Manual) |
#FBX in more detail
FBX is the format you will use most for Unreal and Unity, which "still both treat FBX as the primary format in how 3D data gets into the engine" (aras-p.info: Blender FBX importer via ufbx). Aras Pranckevičius, who wrote Blender's new FBX importer, describes it as "a proprietary format that is still quite popular in some spaces" whose main downside is that "it is closed and with no public spec" (aras-p.info: Blender FBX importer via ufbx). Blender cannot use Autodesk's closed-source FBX SDK, so its developers "had to reverse engineer the format" (aras-p.info: Blender FBX importer via ufbx). He also notes that Autodesk "seems to have stopped around year 2020" developing it (aras-p.info: Blender FBX importer via ufbx).
Practical points from engine documentation:
- Export FBX rather than saving native files into the project. Unity's 2019.4 manual says "Always export Models from your 3d modeling application to FBX" (Unity 2019.4 Manual: Creating models outside of Unity).
- Do not embed textures. Unity advises against the Embed Media option, because it enlarges the project and slows import (Unity 6.6 Manual: Preparing your model files for export).
- Mind the default scale. Unity's 2019.4 manual lists a default scale factor of 0.01 for
.fbxfiles but 1 for.blend,.maand.mb(Unity 2019.4 Manual: Creating models outside of Unity). See units, scale and axes. - One prop per file when using custom collision in Unreal. One checklist warns that with several meshes in one file, "only the first mesh's collision will be imported" (Cinevva: Blender to Unreal Engine Export Checklist…). See collision meshes.
Blender's FBX support is changing. Blender 4.5 added a new experimental FBX importer, written in C++ on the ufbx library and "generally 3x-15x faster than the old one"; at the time, the plan was to remove the Python importer at some point in the future (Blender Developer Documentation: Blender 4.5 LTS: Pipeline & I/O; Blender 4.5 LTS Manual: FBX). The new code only imports. Asked about a new exporter, its author replied, "if or when that will happen is anyone's guess" (Blender Developer Forum: New FBX importer: Feedback and discussion).
#Native files versus exchange files
Keep your native file as the master. Export a fresh exchange file each time it changes. Unity can import .blend, .max, .ma and .mb files directly, but it does so by launching the authoring application in the background to convert them through FBX, which needs that software installed on every machine that imports the project (Unity 6.6 Manual: Support for proprietary model file formats). Unity's own advice is to export FBX where possible (Unity 6.6 Manual: Support for proprietary model file formats).
#Common mistakes
- Relying on a format your tool is about to drop. Blender 4.5 deprecated COLLADA and announced its removal in 5.0 (Digital Production: Blender 4.5 Beta: Nodes Get Nifty, Collada…).
- Embedding textures in FBX. It bloats the project and slows import (Unity 6.6 Manual: Preparing your model files for export).
- Assuming every format carries materials and animation. Check what your target engine actually imports from each format before you commit to it.
- Re-using old export presets after a major update. Exporters and importers change between versions (Blender Developer Documentation: Blender 4.5 LTS: Pipeline & I/O).
#Further reading and watching
- units, scale and axes — the scale and axis settings that cause most export problems. Beginner. Free.
References
- · Models · Unity 6.6 Manual, 2026 · docs · accessed 2026-10-20
- · Blender FBX importer via ufbx · aras-p.info, 2025 · article · accessed 2026-10-20
- · Speeding up Blender .obj import · aras-p.info, 2022 · article · accessed 2026-10-20
- · Blender 4.5 LTS: Pipeline & I/O · Blender Developer Documentation (release notes), 2025 · docs · accessed 2026-10-20
- · Creating models outside of Unity · Unity 2019.4 Manual, 2020 · docs · accessed 2026-10-20
- · Blender 4.5 Beta: Nodes Get Nifty, Collada Gets the Boot · Digital Production, 2025 · article · accessed 2026-10-20
- · Support for proprietary model file formats · Unity 6.6 Manual, 2026 · docs · accessed 2026-10-20
- · Preparing your model files for export · Unity 6.6 Manual, 2026 · docs · accessed 2026-10-20
- · Blender to Unreal Engine Export Checklist: FBX Settings, Bone Axes, and Scale (2026) · Cinevva, 2026 · article · accessed 2026-10-20
- · FBX (Experimental) · Blender 4.5 LTS Manual, 2025 · docs · accessed 2026-10-20
- · New FBX importer: Feedback and discussion · Blender Developer Forum, 2025 · forum · accessed 2026-10-20
- · Importing model files · Unity 6.6 Manual, 2026 · docs · accessed 2026-10-20
- · Nanite Virtualized Geometry in Unreal Engine · Unreal Engine 5.8 Documentation, 2026 · docs · accessed 2026-10-20
Pages that link here
- How to use this handbook Guide
- How this handbook uses sources Guide
- The game asset pipeline Topic
- Units, scale and axes Topic
- Coordinate systems and handedness Key term
- Pivot point (origin) Key term
- glTF Key term
- Texture file formats Reference
- USD for environment artists Topic
- Export checklist Guide
- Choosing tools: an overview Overview
- Software licensing explained Topic
- Collision meshes Topic
- Gaussian splatting Topic
- Source control for artists Topic
Last updated 2026-10-22