← Back to Blog tutorials

Export GLB from Blender to Godot 4: Scale, axes, and textures

By BitSoul Team5/23/2026Updated 8/7/20265 min read121 views
Export GLB from Blender to Godot 4: Scale, axes, and textures

Coordinate mismatches waste hours. Export a prop from Blender without the right settings and Godot 4 imports it rotated 90°, scaled by 100×, with missing textures — a frustrating but fully avoidable problem once you know the four parameters that matter.

Why GLB is the right format for Godot 4

Godot 4 treats GLTF 2.0 (and its binary sibling, GLB) as a first-class format. Unlike FBX, which requires Autodesk's proprietary SDK and produces inconsistent results across versions, GLB is an open standard that Godot's importer handles natively without any third-party bridge.

Key advantages of GLB for Godot 4:

If your pipeline already uses FBX for Unity, keep a separate GLB export pass for Godot. The BitSoul marketplace distributes all 747 models in GLB format precisely for this reason — one format, any engine.

Setting up Blender export options for Godot 4

Setting up Blender export options for Godot 4 — illustrated

In Blender, go to File → Export → glTF 2.0. The dialog has several tabs; here are the settings that matter:

### Format
Choose glTF Binary (.glb) — not the JSON variant. Binary keeps everything in one file.

### Include
- ✅ Selected Objects (if exporting a single asset)
- ✅ Custom Properties (needed if you use Godot metadata)
- ❌ Cameras and Lights — uncheck these unless your scene specifically needs them

### Transform
This is where most errors originate. Set:
- +Y Up — Godot uses Y-up; Blender's default is also Y-up, but verify this is checked
- Leave rotation at default (0, 0, 0)

### Geometry
- ✅ Apply Modifiers — bake subdivision, mirror, and boolean modifiers into the export
- ✅ UVs, Normals, Tangents — all three are required for correct normal map rendering
- ✅ Vertex Colors if your materials use them
- ❌ Loose Edges and Loose Points — no use in game assets

### Animation
- ✅ Export if the asset is animated
- Set Mode to `Actions` for character rigs, `Scene` for scene-level animation

Here's a minimal Python script to batch-export selected objects from Blender's scripting console:

```python
import bpy, os

export_dir = "/path/to/exports/"
os.makedirs(export_dir, exist_ok=True)

for obj in bpy.context.selected_objects:
if obj.type == 'MESH':
bpy.ops.object.select_all(action='DESELECT')
obj.select_set(True)
bpy.context.view_layer.objects.active = obj
filepath = os.path.join(export_dir, f"{obj.name}.glb")
bpy.ops.export_scene.gltf(
filepath=filepath,
export_format='GLB',
use_selection=True,
export_apply=True,
export_yup=True,
export_tangents=True,
export_normals=True,
export_texcoords=True
)
print(f"Exported: {filepath}")
```

Run this once per project and every selected mesh exports as a clean, engine-ready GLB.

Fixing scale and axis mismatches

Fixing scale and axis mismatches — illustrated

The most common Godot import complaint: the model arrives 100× too large or rotated 90° on the X axis.

The scale problem

Blender works in metres by default. Godot 4 also uses metres internally. The problem arises when Blender's Unit Scale is set to something other than 1.0, or when artists model at centimetre scale without updating scene unit settings.

Fix before exporting:

  1. Open Scene Properties → Units
  2. Set Unit System to `Metric`, Unit Scale to `1.0`, Length to `Meters`
  3. If your mesh looks wrong after this, select all and use Object → Apply → Scale (`Ctrl+A → Scale`) to bake the current scale into the mesh

| Scenario | Blender unit | Godot result | Fix |
|---|---|---|---|
| Correct setup | 1 BU = 1 m | 1 Godot unit = 1 m ✅ | None |
| Centimetre scale | 1 BU = 1 cm | Model 100× too small ❌ | Apply scale, set Unit Scale = 1.0 |
| Legacy FBX import | 1 BU = 0.01 m | Model 100× too large ❌ | Apply scale after import |
| Accidental transform | Non-uniform XYZ | Stretched on import ❌ | Apply scale before export |

The axis rotation problem

GLTF 2.0 specifies Y-up, right-handed coordinates. Blender exports correctly when +Y Up is checked. If you previously exported with the FBX convention (+Z Up), Godot receives a mesh rotated -90° on the X axis.

If you receive a pre-existing GLB that arrives rotated, fix it inside Godot:

```gdscript
# Rotate the root node to correct a Z-up import
$MeshInstance3D.rotation_degrees = Vector3(-90, 0, 0)
```

Better practice: fix at export time. Correct Blender settings mean zero rotation corrections in Godot.

Embedding textures and PBR materials in GLB

GLB embeds textures as binary blobs inside the file — but only if Blender's material is set up correctly. A material using an Image Texture node connected to Principled BSDF will export properly. Procedural nodes (Noise, Voronoi, etc.) will not export — Blender will silently skip them.

PBR channel mapping

| Principled BSDF input | GLTF slot | Godot 4 slot |
|---|---|---|
| Base Color | `baseColorTexture` | Albedo |
| Metallic | `metallicRoughnessTexture` (B channel) | Metallic |
| Roughness | `metallicRoughnessTexture` (G channel) | Roughness |
| Normal Map | `normalTexture` | Normal |
| Emission Color | `emissiveTexture` | Emission |
| Alpha | `baseColorTexture` (A channel) | Transparency |

Both metallic and roughness must plug into the same Principled BSDF — not into separate materials. Blender's GLTF exporter handles the channel packing automatically.

Verify textures are embedded

After exporting, run a quick sanity check:

```python
import struct, json

with open('your_asset.glb', 'rb') as f:
f.read(12) # skip header
length = struct.unpack('<I', f.read(4))[0]
f.read(4) # chunk type
data = json.loads(f.read(length))

print('Textures:', len(data.get('images', [])))
print('Materials:', len(data.get('materials', [])))
```

If textures shows 0, your materials are using procedural nodes or unlinked image texture nodes. Fix the node graph and re-export.

Four checkpoints for a clean export

A reliable Blender → Godot 4 GLB pipeline comes down to these four checks before every export:

  1. Scene units set to metres, scale applied — no accidental 100× size surprises
  2. +Y Up checked in the GLTF exporter — correct orientation on import
  3. Apply Modifiers on, Loose Edges/Points off — clean geometry only
  4. Principled BSDF with image texture nodes — textures actually embed

With those four in place, assets arrive in Godot correctly oriented, correctly scaled, and with full PBR materials intact — no manual corrections in the inspector needed.

Browse 747 game-ready GLB models at the BitSoul marketplace — all exported with these settings applied, ready to drop into your Godot 4 project.

---

*This post is part of the Ultimate Guide to Free 3D Game Assets — BitSoul's complete reference for formats, texturing, rigging, optimization, and engine integration.*

Tags: tutorials game-assets blender optimization workflow glb-format

Skip the modelling — download it instead

A free BitSoul account gets you 2 game-ready models every month plus 25 AI Engine credits to generate one of your own, no card required. Clean topology, PBR textures, and GLB downloads that drop straight into Unreal, Unity, Godot or Blender — plus OBJ and 3D-printable STL export.

Create a free account → Browse 846 models