Baking normal maps for game models

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.
Showing 1 of 1 servicesAll 242 services
Baking normal maps for game models
Medium
~1 business day
FAQ
Our competencies
What are the stages of Game Development?
Latest works
  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    670
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    860
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    533

Baking Normal Maps for Game Models

Normal map is an illusion. It convinces the engine that a 3000-polygon low-poly sword has engraved runes and metal texture. Good normal map works invisibly. Bad—visible immediately: dark stripes along edges, seam down the middle of handle, "flat" character face under side lighting.

Technically normal map bakes in minutes. Baking correctly—that's knowledge of specific settings, tangent space understanding, ability to foresee artifacts before appearance.

Three artifact sources and how to eliminate them

Tangent space mismatch. Perhaps most non-obvious reason "correct" normal map looks wrong in engine. Marmoset Toolbag, xNormal, Substance Painter and each engine use their tangent space conventions. Unity (Standard and URP/HDRP)—MikkTSpace. Unreal Engine—also MikkTSpace, but with UE4 vs UE5 quirks. Godot—MikkTSpace. If map baked in one tangent space and imported to engine with different, get incorrect lighting: strange highlights not where they should be.

Solution: in Marmoset Toolbag 4 set Tangent Space → MikkTSpace (Blender/Unity/UE). In Substance Painter—setting on mesh import (Compute Tangent Space Per Fragment). Check result in actual engine, not just tool preview.

Hard edge + UV seam mismatch. Standard hard-surface geometry has hard edges (smoothing group breaks) on structural edges. If UV seam doesn't match these edges, baker interpolates normals across seam—result: dark or bright stripe along edge. One rule: each hard edge must be UV seam, each UV seam on hard-surface—hard edge. Not recommendation, mandatory.

In Blender—Edge → Mark Sharp + Mark Seam on same edges. In Maya—Mesh Display → Soften/Harden Edge and UV Seam on matching edges. In 3ds Max—Smoothing Groups + UV seam same logic.

Cage and projection misses. For complex geometry with concave forms, floating details (separate objects on top) or large HP/LP mismatch in Marmoset Toolbag need Bake Groups work. Each floating detail—separate group with individual cage offset. Without this baker casts rays through wrong geometry and gets black spots or inverted normals at intersection zones.

Baking settings in Marmoset Toolbag 4

Marmoset Toolbag 4—primary production baking tool. Final bake settings:

  • Samples: 512 for 4096 maps, 256 for 2048. Lower—noise on complex transitions.
  • Dilation: 32px for 4096, 16px for 2048. Critical for mip-map bleeding.
  • Tangent Space: MikkTSpace (for most engines).
  • Max Frontal / Rear Distance: individual per asset. Too large rear distance—baker captures reverse-side geometry. Too small—misses on details with large LP offset.

For floating geometry (rivets, overlays, decorative elements): separate Bake Group per floating cluster. Max Frontal Distance = slightly larger than LP surface to farthest floating object point. Rear Distance = minimal.

In xNormal use same approach but through .hnmap settings file per asset cage. xNormal faster on large scenes, useful for batch baking 50+ objects simultaneously.

Normal map QA before production handoff

Baked map must be checked in engine—not just Toolbag. Reason: Toolbag preview uses its own PBR render potentially masking issues invisible at standard engine lighting.

Check checklist:

  • Three-way lighting: key, side, backlight
  • Extreme angles: camera nearly parallel to surface (grazing angle)
  • Edge check: no dark stripes along hard edges
  • Seam check: no visible seams at UV boundary

If map passes engine check—it's ready.

Timeline guidelines

Asset Maps Timeline
Simple prop (weapon, tool) Normal + AO 2–6 hours
Medium object (machinery, details) Full PBR 4–10 hours
Character (single UV tile) Full PBR 1–3 days
Complex asset with floating Full PBR 2–4 days
UDIM character (4–6 tiles) Full PBR per tile 3–6 days

Cost calculated individually. Input needed: high-poly (FBX/OBJ), low-poly with ready UV, target engine info.