Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| 3d:shading [2026/03/02 16:12] – [Step 1 – Apply All Modifiers] mh | 3d:shading [2026/03/02 16:12] (current) – mh | ||
|---|---|---|---|
| Line 263: | Line 263: | ||
| - | ==== Step 2 – Join Into One Object ==== | ||
| - | Select all objects. | ||
| - | |||
| - | **Select one last as active** (it becomes the base object) | ||
| - | |||
| - | → '' | ||
| - | |||
| - | Now you have one mesh containing all objects. | ||
| - | |||
| - | Important: | ||
| - | Check for duplicate vertices if objects were touching: | ||
| - | Go to **Edit Mode** → '' | ||
| - | |||
| - | This cleans overlapping vertices. | ||
| - | |||
| - | ==== Step 3 – UV Unwrap Properly ==== | ||
| - | |||
| - | Now that it's one object: | ||
| - | |||
| - | Go to 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) | ||
| - | |||
| - | Render → Cycles | ||
| - | |||
| - | **Bake Type:** Diffuse | ||
| - | |||
| - | Disable: | ||
| - | * Direct | ||
| - | * Indirect | ||
| - | * Leave only Color checked | ||
| - | |||
| - | Press '' | ||
| - | |||
| - | Save the image afterward in Image Editor. | ||
| - | |||
| - | 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 ==== | ||
| - | |||
| - | Now 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**: | ||
| - | |||
| - | '' | ||
| - | |||
| - | GLTF likes clean scale = 1, rotation = 0. | ||
| - | |||
| - | Game engines prefer clean transforms. | ||
| - | |||
| - | Also '' | ||
| - | |||
| - | Game engines like clean normals. | ||
| - | |||
| - | |||
| - | ==== 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 | ||
| ===== Resource sites ===== | ===== Resource sites ===== | ||