Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| 3d:export-runtime [2026/03/02 15:58] – created mh | 3d:export-runtime [2026/03/03 10:33] (current) – [Step 7 – (Optional but Recommended) Apply Transforms] mh | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| ===== Baking Textures ===== | ===== 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) | ||
| + | |||
| + | → '' | ||
| + | |||
| + | All objects become one mesh. | ||
| + | |||
| + | Clean-up: | ||
| + | * Check for duplicate vertices | ||
| + | * **Edit Mode** → '' | ||
| + | * With everything still selected | ||
| + | * '' | ||
| + | ==== Step 3 – UV Unwrap Properly ==== | ||
| + | |||
| + | Now that it's one object: | ||
| + | |||
| + | * **Edit Mode** → '' | ||
| + | |||
| + | 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 '' | ||
| + | * Choose resolution (512 - 2048 or 4096) | ||
| + | * Name it “Object_Baked_BaseColor” | ||
| + | |||
| + | <WRAP round important 30%> | ||
| + | **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 '' | ||
| + | |||
| + | <WRAP round important 30%> | ||
| + | **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 | ||
| + | * '' | ||
| + | |||
| + | 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** → '' | ||
| + | |||
| + | //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 | ||
| + | |||