blender-modeling
Core Philosophy
3D modeling for real-time video games is not creating unconstrained digital sculptures. A high-poly model with 4,000,000 polygons and 12 un-optimized material slots will crash a game engine. Real-time 3D art is the rigorous craft of geometric efficiency: sculpting high-fidelity details, retopologizing into clean low-poly game meshes, baking high-to-low normal maps with zero shading artifacts, establishing consistent texel density, and enforcing strict transform hygiene.
4-Step Game-Ready 3D Modeling Pipeline
Step 1: High-Poly to Low-Poly Modeling & Retopology
- High-Poly Sculpting / Hard-Surface:
- Model complete micro-details: bevels, screws, seams, welded joints, cloth folds.
- Low-Poly Retopology Discipline:
- Silhouette is King: Allocate polygon budget to the outer silhouette where curved edges meet the sky/background. Flat surfaces require minimal geometry.
- Clean Edge Loops: Quad-dominant topology along deformation joints; triangulate flat surfaces before export to prevent engine-specific triangulation warping.
- Polycount Budgets:
- Hero Character: 30k–60k triangles.
- First-Person Weapon: 15k–30k triangles.
- Environment Prop: 1k–5k triangles.
Step 2: UV Unwrapping & Texel Density Standardization
- The Texel Density Constant:
- Standardize pixel density per meter across all assets in the game world:
- Hero First-Person Props: 2048 px/m (4K texture for 2m object).
- Standard Characters / Weapons: 1024 px/m (2K texture for 2m object).
- Environment Props / Architecture: 512 px/m.
- UV Seam Placement & Packing Hygiene:
- Place UV seams in concealed areas (undersides, inner seams, sharp mechanical angles).
- Packing Efficiency: Achieve $\ge 75%$ UV space utilization. Pack UV islands with at least 16px padding (at 2K resolution) to prevent mipmap texture bleeding.
Step 3: Normal Map Baking & Shading Seam Prevention
- The 3 Golden Rules of Baking:
- Rule 1: Hard Edges Require UV Seams: Any sharp edge ($> 60^\circ$ angle) marked with a Hard/Sharp Edge must have a corresponding UV seam split to prevent dark shading gradients across normal maps.
- Rule 2: Triangulate Before Baking: Triangulate the low-poly mesh prior to baking to guarantee the normal map is baked against the exact triangulation the engine renders.
- Rule 3: Use Average Normals & Cage: Use an expanded cage mesh to prevent projection ray intersection clipping on tight mechanical crevices.
Step 4: Transform Hygiene & Export Configuration
- Transform Normalization:
- Apply all transforms: Location
(0,0,0), Rotation (0,0,0), Scale (1.0, 1.0, 1.0).
- Set Origin Point: Place the origin pivot at the logical physical base (e.g. bottom-center of props for easy ground snapping, or center-of-mass for physics debris).
Deliverable Format: 3D Asset Specification (ASSET-SPEC.md)
# Real-Time 3D Asset Specification: [Prop Name]
## 1. Geometric Budget & Dimensions
- **Asset Name**: Tactical First-Aid Station Prop
- **Physical Dimensions**: 0.6m (W) x 0.8m (H) x 0.25m (D)
- **Target Polygon Count**: 3,200 triangles (Budget: <= 4,000 triangles)
- **Topology**: 100% clean manifold geometry; zero ngons; zero loose vertices.
## 2. UV & Texel Density Standards
- **Texture Set Size**: 2048x2048px (PBR Metallic/Roughness workflow)
- **Target Texel Density**: 1024 px/meter
- **UV Island Padding**: 16px minimum gutter spacing
- **UV Space Efficiency**: 79.4% packed area
## 3. Texture Map Manifest
| Map Type | Channel Packing | Format | Bit Depth |
|---|---|---|---|
| Base Color / Albedo | RGB | PNG / TGA | 8-bit sRGB |
| Normal Map | RGB (OpenGL / DirectX) | PNG / TGA | 16-bit Linear |
| ORM Map | R: Occlusion, G: Roughness, B: Metallic | PNG / TGA | 8-bit Linear |
## 4. Transform & Pivot Setup
- Pivot Point: Bottom-center at `(0, 0, 0)`.
- Applied Scale: `(1.0, 1.0, 1.0)` confirmed.
Worked Example: Eliminating Black Normal Map Seams
- Problem: Hard-surface weapon model exhibited ugly dark shading gradients along mechanical edges when imported into Unreal Engine.
- Diagnosis: 90-degree bevel edges were marked as smooth without UV seams, forcing the normal map to compensate for extreme vertex normal bending.
- Fix: Marked 90-degree edges as Sharp; split UV islands along those exact edges; re-baked with cage.
- Result: Shading rendered completely seamless and flat under real-time lighting.
Verification Checklist
Anti-Patterns
- Leaving Unapplied Scales: Exporting an asset scaled at 0.05, breaking real-time physics and distance culling.
- Wasted UV Texture Space: Packing UVs with 40% empty white space, wasting texture VRAM.
- Baking Without UV Padding: Setting 0px gutter margin between UV islands, causing colors to bleed across LOD mipmaps.
1---2name: blender-modeling3description: Model, retopologise, UV unwrap and bake game-ready assets with correct scale, pivots and polycount. Use when creating 3D hard-surface meshes, low-poly props, or UV layouts.4---56# blender-modeling78## Core Philosophy93D modeling for real-time video games is not creating unconstrained digital sculptures. A high-poly model with 4,000,000 polygons and 12 un-optimized material slots will crash a game engine. Real-time 3D art is the rigorous craft of geometric efficiency: sculpting high-fidelity details, retopologizing into clean low-poly game meshes, baking high-to-low normal maps with zero shading artifacts, establishing consistent texel density, and enforcing strict transform hygiene.1011---1213## 4-Step Game-Ready 3D Modeling Pipeline1415### Step 1: High-Poly to Low-Poly Modeling & Retopology161. **High-Poly Sculpting / Hard-Surface**:17 - Model complete micro-details: bevels, screws, seams, welded joints, cloth folds.182. **Low-Poly Retopology Discipline**:19 - Silhouette is King: Allocate polygon budget to the **outer silhouette** where curved edges meet the sky/background. Flat surfaces require minimal geometry.20 - Clean Edge Loops: Quad-dominant topology along deformation joints; triangulate flat surfaces before export to prevent engine-specific triangulation warping.21 - Polycount Budgets:22 - Hero Character: 30k–60k triangles.23 - First-Person Weapon: 15k–30k triangles.24 - Environment Prop: 1k–5k triangles.2526### Step 2: UV Unwrapping & Texel Density Standardization271. **The Texel Density Constant**:28 - Standardize pixel density per meter across all assets in the game world:29 - Hero First-Person Props: **2048 px/m** (4K texture for 2m object).30 - Standard Characters / Weapons: **1024 px/m** (2K texture for 2m object).31 - Environment Props / Architecture: **512 px/m**.322. **UV Seam Placement & Packing Hygiene**:33 - Place UV seams in concealed areas (undersides, inner seams, sharp mechanical angles).34 - Packing Efficiency: Achieve **$\ge 75\%$ UV space utilization**. Pack UV islands with at least **16px padding** (at 2K resolution) to prevent mipmap texture bleeding.3536### Step 3: Normal Map Baking & Shading Seam Prevention371. **The 3 Golden Rules of Baking**:38 - *Rule 1: Hard Edges Require UV Seams*: Any sharp edge ($> 60^\circ$ angle) marked with a Hard/Sharp Edge **must** have a corresponding UV seam split to prevent dark shading gradients across normal maps.39 - *Rule 2: Triangulate Before Baking*: Triangulate the low-poly mesh prior to baking to guarantee the normal map is baked against the exact triangulation the engine renders.40 - *Rule 3: Use Average Normals & Cage*: Use an expanded cage mesh to prevent projection ray intersection clipping on tight mechanical crevices.4142### Step 4: Transform Hygiene & Export Configuration431. **Transform Normalization**:44 - Apply all transforms: Location `(0,0,0)`, Rotation `(0,0,0)`, Scale `(1.0, 1.0, 1.0)`.45 - Set Origin Point: Place the origin pivot at the logical physical base (e.g. bottom-center of props for easy ground snapping, or center-of-mass for physics debris).4647---4849## Deliverable Format: 3D Asset Specification (`ASSET-SPEC.md`)5051```markdown52# Real-Time 3D Asset Specification: [Prop Name]5354## 1. Geometric Budget & Dimensions55- **Asset Name**: Tactical First-Aid Station Prop56- **Physical Dimensions**: 0.6m (W) x 0.8m (H) x 0.25m (D)57- **Target Polygon Count**: 3,200 triangles (Budget: <= 4,000 triangles)58- **Topology**: 100% clean manifold geometry; zero ngons; zero loose vertices.5960## 2. UV & Texel Density Standards61- **Texture Set Size**: 2048x2048px (PBR Metallic/Roughness workflow)62- **Target Texel Density**: 1024 px/meter63- **UV Island Padding**: 16px minimum gutter spacing64- **UV Space Efficiency**: 79.4% packed area6566## 3. Texture Map Manifest67| Map Type | Channel Packing | Format | Bit Depth |68|---|---|---|---|69| Base Color / Albedo | RGB | PNG / TGA | 8-bit sRGB |70| Normal Map | RGB (OpenGL / DirectX) | PNG / TGA | 16-bit Linear |71| ORM Map | R: Occlusion, G: Roughness, B: Metallic | PNG / TGA | 8-bit Linear |7273## 4. Transform & Pivot Setup74- Pivot Point: Bottom-center at `(0, 0, 0)`.75- Applied Scale: `(1.0, 1.0, 1.0)` confirmed.76```7778---7980## Worked Example: Eliminating Black Normal Map Seams8182- **Problem**: Hard-surface weapon model exhibited ugly dark shading gradients along mechanical edges when imported into Unreal Engine.83- **Diagnosis**: 90-degree bevel edges were marked as smooth without UV seams, forcing the normal map to compensate for extreme vertex normal bending.84- **Fix**: Marked 90-degree edges as Sharp; split UV islands along those exact edges; re-baked with cage.85- **Result**: Shading rendered completely seamless and flat under real-time lighting.8687---8889## Verification Checklist9091- [ ] All transforms applied (Scale is strictly 1.0; rotation is 0,0,0).92- [ ] Pivot origin positioned at logical attachment/ground point.93- [ ] No ngons (faces with $> 4$ vertices) or non-manifold geometry present.94- [ ] Texel density verified consistent with project standards.95- [ ] Hard/sharp edges correspond 1:1 with UV seam boundaries.9697---9899## Anti-Patterns100101- **Leaving Unapplied Scales**: Exporting an asset scaled at 0.05, breaking real-time physics and distance culling.102- **Wasted UV Texture Space**: Packing UVs with 40% empty white space, wasting texture VRAM.103- **Baking Without UV Padding**: Setting 0px gutter margin between UV islands, causing colors to bleed across LOD mipmaps.