LAUNCH OFFER€25 in free credits when you sign up, no card requiredClaim the offer
    TURNA, Blender render farm
    Back to the Blender guides

    Exporting from Blender: FBX, glTF/GLB, OBJ or USD, and which format to use

    T
    TURNA technical team
    29 October 2026
    13 min

    Short answer

    To export from Blender, go to File > Export and pick the format the receiving app expects: FBX for Unity and Unreal Engine, glTF 2.0 (a single .glb file) for the web, Godot and AR, USD for studio pipelines and Omniverse, OBJ for static geometry. To ship textures inside an FBX, set Path Mode to Copy and turn on Embed Textures. Only the Principled BSDF and image textures carry over, so bake everything else.

    • FBX: File > Export > FBX (.fbx), Path Mode: Copy, plus the Embed Textures icon to include the images.
    • glTF: File > Export > glTF 2.0 (.glb/.gltf), Format: glTF Binary (.glb) for a single file.
    • OBJ: File > Export > Wavefront (.obj), with the Materials panel ticked to write the .mtl.
    • USD: File > Export > Universal Scene Description (.usd*), with a .usdz extension for an archive that includes its textures.
    • Before any export: select the objects, then Ctrl+A > Rotation & Scale.

    Menu and option names below are checked against the Blender 5.2 manual and source code.

    Which format for which job

    The right format depends on the app that will open the file. Here is what their documentation recommends:

    DestinationFormatWhy
    UnityFBXUnity says to export to .fbx wherever possible; a .blend file only imports on machines with Blender installed.
    Unreal EngineFBXEpic describes it as one format for static meshes, skeletal meshes, animation and morph targets.
    GodotglTF 2.0Marked as recommended; even a .blend file is imported by having Blender export it to glTF.
    Web, three.jsglTF Binary (.glb)The three.js manual recommends glTF because it is compact to transmit and fast to load.
    AR on Android and the webGLBGoogle’s Scene Viewer accepts glTF 2.0 and .glb files.
    AR on iPhone and iPadUSDZApple’s AR Quick Look displays USDZ files; Blender writes one when the USD export has a .usdz extension.
    Studio pipelines, NVIDIA OmniverseUSDThe scene interchange format developed at Pixar; Omniverse is built on OpenUSD.
    Static geometryOBJA popular plain text format limited to geometry and basic materials.
    3D printingSTLCovered in the guide to 3D printing with Blender.
    Baked animation or simulation (VFX)Alembic (.abc)Stores the animated vertices, not the rig, for apps such as Houdini or Maya.

    If you want a video file rather than a model, that is rendering, not exporting: see how to render an animation in Blender.

    FBX in a nutshell

    FBX (short for Filmbox) is a 3D data exchange format. The Blender manual calls it widely used, especially for animated characters and complex scenes, and lists Maya, 3ds Max, Cinema 4D, Unity and Unreal Engine among the apps that support it. Autodesk owns the format and publishes the FBX SDK, its official library. A single .fbx can hold meshes, UVs, vertex colors, materials, textures (referenced or embedded), cameras, lights, armatures and animation.

    Materials are the weak spot. FBX keeps a simple material model inherited from fixed-function pipelines: the exporter reads the Principled BSDF and maps its image textures (Base Color, Roughness, Metallic, Normal Map, Emission, Alpha) to FBX properties such as DiffuseColor and NormalMap, which each app interprets its own way. Always check materials after import.

    On the import side, File > Import > FBX (.fbx) has used a new C++ importer since Blender 5.0. It arrived as experimental in 4.5, is built on the ufbx library and, per the release notes, is generally 3 to 15 times faster; it also reads ASCII files. The old Python importer remains as FBX (.fbx) (Legacy), deprecated. Export still goes through the Python add-on bundled with Blender: there is no native FBX exporter in 5.2. The Mixamo to Blender guide covers importing animated characters.

    glTF and GLB in a nutshell

    glTF (GL Transmission Format) is a royalty-free specification from the Khronos Group for transmitting and loading 3D scenes efficiently; Khronos calls it “the JPEG of 3D.” Its materials follow the metallic/roughness PBR model (base color, metallic, roughness, baked ambient occlusion, normal map, emission), with extensions for clearcoat, transmission, sheen, iridescence and more. Blender’s exporter offers three variants:

    • glTF Binary (.glb), the default: one binary file with meshes, images and animation, the easiest to share or upload.
    • glTF Separate (.gltf + .bin + textures): readable JSON, binary data and images as separate files, easier to edit but they have to travel together.
    • glTF Embedded (.gltf): everything in JSON, the least efficient option per the manual, only shown once enabled in the add-on preferences.

    OBJ and USD in a nutshell

    Wavefront OBJ is a plain text format with only basic geometry and material support, the materials living in a .mtl file. It has no armatures, lights, cameras, empties, parenting or object transforms; animation becomes a sequence of numbered OBJ files. The PBR Extensions option adds roughness, metallic, sheen, coat, anisotropy and transmission to the .mtl.

    USD (Universal Scene Description) was developed at Pixar and released as open source to exchange models and animation between applications, as .usda (text), .usdc (binary) or .usdz (archive). Blender’s exporter writes visible objects, without USD layers or variants. Materials are either a USD Preview Surface approximation of the Principled BSDF, limited to simple node trees (Diffuse BSDF, Principled BSDF, Image Texture, UV Map, Separate RGB), or a MaterialX network, which handles most shader nodes if the receiving app reads MaterialX.

    What changed in Blender 4 and 5

    Where things stand in Blender 5.2, according to the release notes:

    FormatImportExport
    OBJ, PLYNative (C++)Native (C++); Python add-ons removed in 4.0
    STLNative (C++)Native (C++) since 4.1, Python add-on marked legacy
    FBXNative (C++) by default since 5.0, the old one listed as “(Legacy)”Python add-on bundled with Blender
    glTF 2.0Add-on bundled with Blender, enabled by defaultSame add-on, part of the core add-ons bundle since 4.2
    COLLADA (.dae)Removed in 5.0Removed in 5.0

    If a client sends a .dae or .skp file, the guide to going from SketchUp to Blender lists the formats to ask for instead.

    Blender export FBX with textures, step by step

    1. Select the objects and apply rotation and scale with Ctrl+A > Rotation & Scale: the geometry keeps its look and the values reset to 0 and 1. On an armature, the manual recommends doing this before rigging and animating.
    2. Go to File > Export > FBX (.fbx).
    3. Under Include, tick Selected Objects (selected and visible objects only); Object Types leaves out cameras and lights you do not need.
    4. Set Path Mode to Copy and turn on Embed Textures, the package icon right next to it. It only works in Copy mode: Copy alone copies the images into a .fbm folder named after the file, while Copy with Embed Textures packs them inside the .fbx.
    5. Under Transform, keep Scale at 1.0, Forward at -Z and Up at Y, the defaults.
    6. Under Geometry, leave Apply Modifiers ticked, as it is by default, then click Export FBX.

    Textures only come along if they are image textures plugged into the Principled BSDF. With the default Path Mode, Auto, the FBX stores relative paths for images inside the export folder and absolute paths for the rest, which the manual warns may only be valid on your own system, so the model can show up gray on another machine.

    FBX settings worth knowing

    • Apply Scalings: All Local by default, or FBX Units Scale, which writes the unit conversion into the file instead of the objects’ scale.
    • Apply Transform bakes the axis conversion into the mesh to avoid unwanted object rotations. It carries a warning icon: experimental, and known to break armatures and animation.
    • Smoothing: Normals Only by default, the right choice if the receiving app understands custom normals; otherwise Face, Edge or Smoothing Groups.
    • Apply Modifiers prevents shape keys from being exported: untick it to keep facial shape keys, and the modifiers will not be applied.
    • Armature: Add Leaf Bones, on by default, appends a bone to the end of each chain, which the tooltip reserves for editing the armature from the exported file; Only Deform Bones writes deforming bones and their parents only.

    The low poly in Blender guide applies these settings to a lightweight game asset.

    How to export glTF or GLB from Blender

    1. Go to File > Export > glTF 2.0 (.glb/.gltf).
    2. Keep Format on glTF Binary (.glb), or choose glTF Separate, whose Textures field sets a subfolder for the images.
    3. Under Include, narrow the export (Selected Objects, Visible Objects, Active Collection) and tick Cameras or Punctual Lights if needed: both are off by default.
    4. Leave +Y Up ticked under Transform: that is the glTF convention.
    5. Under Data > Mesh, tick Apply Modifiers. Unlike FBX, it is off by default, so a Mirror or Subdivision Surface modifier would be missing.
    6. Under Data > Material, Images on Automatic keeps PNG and JPEG and converts the rest to PNG; the manual notes JPEG may suit the web better because files are smaller. Click Export glTF 2.0.

    Quads and n-gons become triangles, and UV seams and flat shading raise the vertex count. Curves must be converted to meshes. Only Point, Spot and Sun lights are exported, not Area lights or World lighting. The Data section also offers Draco compression and, since Blender 5.2, Meshopt.

    Exporting textures from Blender

    • glTF: a .glb packs its images, glTF Separate writes them next to the .gltf. glTF requires PNG or JPEG, so the add-on converts other formats, which slows the export down.
    • OBJ: the Materials panel writes the .mtl, with a Path Mode setting; image textures only make it in if the material has a Principled BSDF.
    • USD: Export Textures set to New Path writes the images to a textures folder; a .usdz carries them inside its archive.
    • Images packed into the .blend: File > External Data > Unpack Resources writes them to disk, sorted into folders such as textures.
    • Images created or baked in Blender: save them with Image > Save As in the Image Editor, or they only exist in memory.

    What does not survive export: procedural nodes

    None of these formats carries a node tree. The FBX and glTF exporters read the Principled BSDF and only treat Image Texture nodes as textures: an unconnected input exports as a plain value, and a procedural texture (Noise, Voronoi, Wave) plugged into Base Color is not turned into an image. glTF also expects metallic in the blue channel and roughness in the green channel of one image (otherwise the add-on tries to adapt it), and normal maps through a Normal Map node in Tangent Space, with the image set to Non-Color.

    The fix is baking: Cycles renders the material into images laid out along the UVs, and the manual lists baking base color or normal maps for export to game engines among its main uses. Then rebuild a simple material, a Principled BSDF fed by Image Texture nodes. The guide to texture baking in Blender covers every step, and the one on materials in Blender covers the Principled BSDF. For a baked ambient occlusion map in glTF, the manual describes a glTF Material Output node group with an Occlusion input (Add > Output, once Shader Editor Add-ons is ticked in the glTF add-on preferences). A tip from the manual: importing a glTF file shows which node setups the exporter knows how to write.

    Exporting animation

    In FBX, the Animation panel (Baked Animation checkbox on by default) samples the animation into keyframes. Key All Bones forces a key on every bone, which the tooltip says some apps, like Unreal Engine 4, need. NLA Strips exports each non-muted NLA strip as a separate take. All Actions exports each action as a take, and every animated object gets all compatible actions: untick it to export only the assigned action. Sampling Rate and Simplify control key density. Constraints are not written, only their result, as keyframes.

    In glTF, Animation Mode defaults to Actions: an action is exported if it is active on an object or stashed on an NLA track (Stash or Push Down in the Action Editor). Anything else is skipped, so stash all of a character’s actions. glTF carries object transforms, pose bones and shape key values; the manual warns that other animated properties (physics, lights, materials) are ignored, except through the experimental Animation Pointer option.

    In USD, the Animation checkbox writes the whole scene frame range, deforming meshes included. For a simulation or a heavy rig headed to another app, Alembic bakes the animated geometry.

    Common export problems and how to fix them

    The model is 100 times too big or too small

    The exporter’s own code spells it out: a Blender unit is a meter, an FBX unit a centimeter. With All Local, the exporter multiplies each object’s transform by 100 and labels the file as centimeters; with FBX Units Scale, it leaves objects at scale 1 and writes the conversion into the file’s unit. If the receiving app shows a scale of 100 or 0.01, switch to the other setting, after applying object scale.

    The model arrives rotated

    Blender uses Z up and looks along +Y, while many apps use Y up, hence the Forward -Z and Up Y defaults in FBX and OBJ and the +Y Up checkbox in glTF. In FBX, the conversion goes into the objects’ rotation (Use Space Transform); Apply Transform bakes it into the mesh instead, with the caveats above.

    Gray model, dark or missing faces

    Gray: the images stayed at their original paths (Path Mode on Auto) or were not connected to the Principled BSDF; export with Copy and Embed Textures, or as .glb, and bake procedural materials. Dark or missing faces: turn on the Face Orientation overlay, which shows the back of faces in red, then in Edit Mode use Mesh > Normals > Recalculate Outside (Shift+N) on the selection. In glTF, the material’s Backface Culling (Camera) checkbox makes faces single-sided. If shading changes in the receiving app, try Smoothing set to Face or Smoothing Groups. The guide to smooth shading in Blender explains how normals drive shading.

    Missing modifiers or shape keys

    In glTF, tick Apply Modifiers. In both formats, that option prevents shape keys from being exported, so for a character with facial expressions you have to choose. To re-export the same asset often, Collection Properties > Exporters (Blender 4.2 and later) stores the settings in the .blend file, and File > Export All Collections reruns them in one click.

    Frequently asked questions

    How do I export FBX with textures from Blender?

    Use File > Export > FBX (.fbx), set Path Mode to Copy, then turn on Embed Textures, the package icon next to it: the images are packed inside the .fbx. With Copy alone, Blender copies them into a .fbm folder named after the file. Only image textures connected to the Principled BSDF are exported, so bake procedural textures first.

    How do I export a model from Blender to Unity?

    Export it as FBX: Unity’s documentation asks you to export to .fbx wherever possible. Unity can import a .blend file directly, but only on machines where Blender is installed. Apply rotation and scale first, and check Apply Scalings if the model arrives 100 times too big or too small.

    How do I export glTF from Blender?

    Use File > Export > glTF 2.0 (.glb/.gltf). Keep Format on glTF Binary (.glb) for a single file with the mesh, images and animation, or pick glTF Separate for an editable .gltf, a .bin and the images. Tick Apply Modifiers under Data > Mesh, since it is off by default.

    Should I use FBX or glTF?

    FBX for Unity, Unreal Engine and animated characters with several actions. glTF 2.0, ideally as .glb, for the web (three.js), Godot and AR on Android. glTF carries PBR materials, while FBX goes through an older material model that every application reinterprets.

    Can Blender open FBX files?

    Yes, with File > Import > FBX (.fbx). Since Blender 5.0, that menu uses a new C++ importer, which is faster and also reads ASCII FBX files. The old Python importer is still listed as FBX (.fbx) (Legacy), now deprecated.

    Why is my FBX export 100 times too big or too small?

    Blender works in meters and FBX in centimeters. With Apply Scalings on All Local, the default, the exporter multiplies each object’s transform by 100; with FBX Units Scale, it writes the conversion into the file’s unit instead. If the receiving app misreads one, try the other, after applying object scale (Ctrl+A).

    Rendering the animation on TURNA

    When a scene is already well optimised and the frame count is what takes the time, the remaining lever is rendering several frames at once. TURNA does this for Blender: an add-on (Blender 4.0 to 5.2, Cycles and Eevee) sends the scene in one click, and the frames are split across 1, 2, 4 or 8 GPUs in parallel, RTX 5090 first and RTX 4090 when none is free. The add-on shows the estimated cost before anything starts. Prices start at €4.90 per hour, billed on the time actually used, with a 2-minute minimum (30 seconds until November 9), and new accounts get €25 of free credit. A single still image is still rendered by one machine, so the gain is on animations. Tiers and worked examples are on the Blender render farm page.