Godot Guide

Simple Export ships with the Godot - default preset.

It uses the glTF format, which is the recommended by Godot for 3D assets. I opted to use glTF separate files (.gltf + .bin + textures) instead of the binary .glb format to allow for better texture reuse, material sharing. You can find an overview over the options here:

1. Exporting Assets from Your DCC Tool

Exporting static assets to Godot is straightforward and only requires 3 simple steps:

  1. Select the Godot Preset
  2. Create an Export Collection
  3. Export the Collection/Collections

2. Importing into Godot

Importing into Godot is also simple, but requires a few extra steps to ensure that materials are shared correctly.

A. Import Assets

  1. Copy the .gltf file tpgetjer wotj the models/ and textures/ folders into your Godot project. You can skip this step if you set the export path directly to your Godot project folder. In the video the export path is directly set to the correct folder within the Godot project. The object is therefore automatically imported.
  2. Godot will automatically detect the .gltf files and import them as scenes.
  3. Open the imported scene to verify that the model and textures are correctly applied.

B. Extract Materials for Sharing

  1. Open an imported model in Godot.
  2. In the Inspector, find the Actions button at the left top.
  3. Under click Extract Materials and specify the location for the creation of the material asset.
  4. Press Select Current Folder and confirm the creation of the material asset by pressing Extract.

C. Reassign Materials to New Imports

  1. Import a new .gltf asset.
  2. In the Inspector, replace its materials with the shared .tres file:
    • Select the MeshInstance3D node.
    • Drag materials/shared_material.tres into the material slot.
    • Repeat for all matching materials.

The Simple Exporter Godot Preset

An overview of all settings used in the preset:

General Settings

Setting Value Notes
Format gltf Separate Separate the data makes it eaier to share data and avoid duplication. See the later section glb vs gltf for more context.
Textures textures Folder to place texture files in. Relative to the .gltf file
Custom Properties True Custom Properties can make the files slightly bigger but can be useful for passing on additional data in your pipeline.

Transformation Settings

Setting Value Notes
Export at Collection Center False The feature sound unpredictable. Export at Collection Center, Export at Collection center of mass of root objects of the collection
+Y Up True +Y Up, Export using glTF convention, +Y up
Flatten Object Hierarchy False Comgines different objects. This should be a dedicated decision by the user.Flatten Object Hierarchy, Flatten Object Hierarchy. Useful in case of non decomposable transformation matrix.
Full Collection Hierarchy True Full Collection Hierarchy: Export full hierarchy, including intermediate collections.

Mesh Settings

Setting Value Notes
Apply Modifiers Enabled Apply objects modifiers on export
UVs Enabled Export UVs with the meshes.
Normals Enabled Export vertex normals with meshes.
Tangents Disabled Godot uses Mikktspace tangent space, the same Tangent space used by Blender. It is therefore not necessary to export the tangent space
Attributes Enabled Export Attributes (when starting with underscore).
Loose Edges Disabled
Loose Points Disabled
Shared Accessors Disabled Shared Accessors, Export Primitives using shared accessors for attributes

Material Settings

Setting Value Notes
Use Vertex Color Material Material – Export vertex color when used by material.
Export All Vertex Colors True Export All Vertex Colors, Export all vertex colors, even if not used by any material. If no Vertex Color is used in the mesh materials, a fake COLOR_0 will be created, in order to keep material unchanged.
Setting Value Notes
Materials Export Material – Export vertex color when used by material.
Images Automatic Material – Export vertex color when used by material.
Setting Value Notes
Animations Enabled Export actions/NLA tracks as glTF animations.
Animation Mode ACTIONS Exports each action as a separate animation.
Skinning Enabled Required for armatures.
Bone Influences 4 Godot supports up to 4 bone influences per vertex.
Add Leaf Bones Disabled Not required for Godot.
Optimize Animation Size Enabled Removes redundant keyframes.
Negative Frames SLIDE Slides animations to start at frame 0, useful for looping.
Sampling Rate 1 How often to evaluate animated values (in frames).
Force Sampling Enabled Ensures consistent animation sampling.
Export Deform Bones Only Disabled Export all bones unless you specifically need only deform bones.
Reset Pose Bones Enabled Resets pose bones between actions, preventing pose carryover.
Bake Animation Disabled Only enable if using constraints/drivers or exporting only selected objects.

gltf vs glb

  • .gltf files are JSON-based and reference external binary and texture files. This makes them more human-readable and easier to edit manually.
  • .glb files are binary files that package all data (geometry, materials, textures, animations) into a single file. This makes them more compact and easier to manage, especially for distribution.

Comparison

Feature glTF Separate: glTF Binary:
File Structure Multiple files: .gltf (JSON) + .bin, textures, etc. Single binary file (.glb)
Transfer Ease More files to manage; risk of missing assets Single file; easier to share/transfer
Godot Import Supported; may require manual asset linking Supported; simpler import process
Size Efficiency Slightly larger due to separate files and JSON overhead More compact; optimized for transfer
Editing Flexibility Easier to edit individual assets (e.g., textures) Harder to edit; requires unpacking
Version Control Better for diffing/merging (text-based JSON) Binary; harder to version control
Texture Reuse Easier to reuse textures across multiple assets More difficult; textures are embedded
Material Sharing Easier to share and update materials More difficult; materials are embedded

Project Structure

The textures and materials are stored as sub-folders of the assets

your_project/
├── assets/
    ├── [asset category]/
    │   ├── asset1.gltf
    │   ├── asset1.bin
    │   ├── asset2.gltf
    │   ├── asset2.bin
    |   ├──textures/
    │   |   ├── shared_albedo.png
    │   |   ├── shared_metallicroughness.png
    │   |   ├── shared_normal.png
    |   ├── materials/
    │   |   ├── shared_material.tres  # Godot material
  • assets/: Contains all 3D assets.
  • [asset category]/: User defined subfolder defining the asset category. Contains the.gltf and .bin files.
  • textures/: Centralized folder for all textures of this category.
  • materials/: Godot material files (.tres) for sharing.

Automate Material Sharing (Optional)

Use a Godot script to automatically replace duplicate materials:


Updating Assets

  • Textures: Replace the file in textures/. All models using it will update automatically.
  • Materials: Edit the .tres file. Changes apply to all linked models.
  • Meshes: Re-export only the .gltf/.bin files for the updated model.

Troubleshooting

  • Missing textures? Double-check paths in the .gltf JSON.
  • Materials not updating? Ensure the .tres file is correctly linked.
  • Performance issues? Use Godot’s Resource Usage debugger to check for duplicates.

Example Workflow

  1. Export chair.gltf and table.gltf, both using wood_albedo.png.
  2. Import both into Godot.
  3. Extract the wood material from chair and save as wood.tres.
  4. Assign wood.tres to the table model.
  5. Update wood_albedo.png—both models reflect the change.

Furhter References and Resources: