====== 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