Objects in the scene fall into three groups:
Static scenery
Dynamic visual actors
Hero props
Each category follows a different export strategy.
Clean GLB structure with:
This structure is optimal for real-time engines.
Select all objects.
OR
This applies all modifiers (including bevel) destructively.
If you prefer manual control: Select one → Modifier tab → Apply Repeat for all (less efficient).
Select all objects. Select one last as active (it becomes the base object)
→ Ctrl + J
All objects become one mesh.
Clean-up:
A → M → By DistanceSHIFT + N to recalculate normalsNow that it's one object:
A → U → Smart UV ProjectAdapt projection method if needed for geometry.
Adjust angle limit if needed.
Open UV Editor and confirm:
If you want optimal packing: UV → Pack Islands
Switch to Cycles (baking only works in Cycles).
In Shader Editor:
NewIMPORTANT:
Leave this Image Texture node selected (highlighted).
This tells Blender where to bake.
In the Render tab (Cycles selected)
Bake.IMPORTANT:
Save the image afterward in Image Editor.
If it's not saved to disk it can be lost.
Repeat the process for Normal Map:
BakeRepeat the process for Roughness (if needed)
Create a clean Principled BSDF:
Remove all procedural nodes.
You now have a lightweight material that works in any engine.
Ctrl + A → Apply Rotation/Scale. In most cases don't apply location if your object is not an independent asset placed at world origin.
GLTF likes clean scale = 1, rotation = 0.
Game engines prefer clean transforms.
For example when a window is applying a difference boolean on a wall for easy placement
Recommended Order:
Two main bottle structures exist in the scene:
Each type should be prepared differently for export.
Structure per bottle:
Recommended mesh structure:
Final object group:
Bottle_CorkGlass Bottle_Liquid_Emissive
Reasons:
Material rules:
Important:
Structure per bottle:
Recommended mesh structure:
Final object:
Bottle_Static
Reasons:
These static bottles can then be merged with other decorative elements in the same spatial section, or kept separate and joined together as a “transparent” set.
Example:
Bookshelf_Accessories_01 Workbench_Accessories_01
Before exporting to GLB: