====== Exporting for Real-Time Engines ======
===== Baking Textures =====
==== Step 1 – Apply All Modifiers ====
Select all objects.
* **F3 → “Convert to Mesh”**
OR
* Object Mode → Object → Convert → Mesh
//This applies all modifiers (including bevel) destructively.//
If you prefer manual control:
Select one → Modifier tab → Apply
Repeat for all (less efficient).
==== Step 2 – Join Into One Object ====
Select all objects. **Select one last as active** (it becomes the base object)
→ ''Ctrl + J''
All objects become one mesh.
Clean-up:
* Check for duplicate vertices
* **Edit Mode** → ''A'' → ''M'' → **By Distance**
* With everything still selected
* ''SHIFT + N'' to recalculate normals
==== Step 3 – UV Unwrap Properly ====
Now that it's one object:
* **Edit Mode** → ''A'' → ''U'' → **Smart UV Project**
Adapt projection method if needed for geometry.
Adjust angle limit if needed.
Open UV Editor and confirm:
* No overlapping islands
* Good space usage
If you want optimal packing:
**UV → Pack Islands**
==== Step 4 – Create Bake Target Texture ====
Switch to **Cycles** (baking only works in Cycles).
In Shader Editor:
* Add **Image Texture node**
* Click ''New''
* Choose resolution (512 - 2048 or 4096)
* Name it “Object_Baked_BaseColor”
**IMPORTANT:**
Leave this Image Texture node selected (highlighted).
This tells Blender where to bake.
==== Step 5 – Bake Maps ====
=== Bake Base Color (Albedo) ===
In the Render tab (Cycles selected)
* Open **Bake** section
* **Bake Type:** Diffuse
* Disable:
* Direct
* Indirect
* Leave only Color checked
* Press ''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:
* Create new Image Texture → “Object_Baked_Normal”
* Select that node
* Bake Type → Normal
* Space → Tangent
* ''Bake''
Repeat the process for Roughness (if needed)
* Bake Type → Roughness
==== Step 6 – Create a New Game-Ready Material ====
Create a clean Principled BSDF:
* Plug BaseColor texture into Base Color
* Plug Normal texture → Normal Map node → Principled Normal
* Plug Roughness texture into Roughness
Remove all procedural nodes.
You now have a lightweight material that works in any engine.
==== Step 7 – (Optional but Recommended) Apply Transforms ====
* **Object Mode** → ''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.
===== Correct Modifier / Boolean Order =====
//For example when a window is applying a difference boolean on a wall for easy placement//
Recommended Order:
* Finish modeling
* Apply Boolean on wall (for window cutout)
* Clean topology
* Apply bevel
* Join bricks (if needed)
* UV unwrap
* Bake
* Apply transforms
* Export