BLENDER • EXPORT AND INTEROPERABILITY

Texture Baking — Bake textures conceptually for game/real-time workflows

Flatten complex shading into lightweight texture maps so real-time engines can render rich surfaces at interactive frame rates.

Historical Context & Motivation

Real-time 3D rendering has always operated under a fundamental tension: artists want rich, physically accurate shading, while game engines demand that every pixel be drawn in a fraction of a millisecond. In the early days of computer graphics, hardware could barely shade a flat-colored polygon, let alone evaluate the complex light-transport equations that produce soft shadows, ambient occlusion, or subsurface scattering. The solution that emerged — and remains essential today — is texture baking, the practice of pre-computing expensive shading information and storing the results as ordinary 2D image textures that a game engine can sample almost for free.

Texture baking arose from a practical need in the film and game industries. Offline renderers like RenderMan could spend minutes per frame evaluating global illumination, but interactive applications needed comparable visual quality at 30–60 frames per second. By baking the output of these slow computations onto texture maps — diffuse color, normals, ambient occlusion, and more — artists could transfer visual fidelity from an offline context to a real-time one. This concept sits at the heart of modern export and interoperability workflows, because baked textures serve as the common currency between authoring tools like Blender and runtime engines like Unity, Unreal, or Godot.

1996
Quake & Lightmaps
id Software's Quake engine introduced lightmaps — low-resolution textures storing pre-computed lighting for static geometry. This was one of the earliest mainstream uses of baking illumination data into textures for real-time playback.
2002
Normal Map Baking Emerges
Developers on titles like Doom 3 began baking surface detail from high-poly sculpts onto normal maps applied to low-poly meshes, enabling a massive jump in visual complexity without proportional polygon cost.
2010
PBR & Multi-Map Baking
The adoption of physically based rendering (PBR) standardized material workflows. Baking expanded to include roughness, metallic, and ambient occlusion maps, with tools like Substance Painter building entire pipelines around the concept.
2018
Blender 2.8 & Cycles Bake Overhaul
Blender's redesigned interface and improved Cycles bake system made professional-grade texture baking accessible in an open-source tool, democratizing game-asset pipelines for independent artists and studios.
2023+
AI De-noising & GPU Baking
Modern Blender releases incorporate GPU-accelerated baking and AI-driven de-noising, reducing bake times from minutes to seconds and making iterative workflows practical even for complex scenes.

The central question texture baking answers is deceptively simple: How do we preserve the visual richness of a complex shading network when we move an asset from an authoring environment into a real-time engine that cannot evaluate that network directly? Understanding the conceptual framework behind baking empowers you to make informed decisions about resolution, map types, UV layout, and quality trade-offs — decisions that directly affect both the visual fidelity and the performance of every game-ready asset you create.

Core Principles & Definitions

Before diving into specific map types or Blender-specific steps, it is important to establish the foundational concepts that underpin every texture bake. These principles apply regardless of the software or engine you use, and understanding them will help you diagnose problems, optimize assets, and communicate effectively with technical artists and programmers on a production team.

1

UV Unwrap as Canvas

Every bake writes data to a 2D image. The UV map defines exactly which texel on that image corresponds to which point on the 3D surface. A poor UV layout — with overlapping islands, excessive stretching, or wasted space — directly degrades bake quality, producing seams, distortion, or unnecessarily low resolution on important features.
2

High-Poly → Low-Poly Transfer

One of the most common baking operations involves casting rays from the surface of a low-poly target mesh toward a high-poly source mesh. The renderer records what it finds — normals, color, curvature — and paints that information onto the low-poly mesh's texture. This allows millions of polygons of sculpted detail to be represented on a mesh with only a few thousand faces.
3

Texel Density & Resolution

Texel density — the number of texture pixels per unit of 3D surface area — determines how sharp baked details appear in-engine. Consistent texel density across all UV islands prevents some parts of the model from looking blurry while others look crisp, a common artifact of careless UV packing.
4

Ray Distance & Cage

During a high-to-low bake, rays are cast outward along surface normals up to a specified ray distance. If the distance is too short, the bake misses protruding high-poly detail; if too long, it may pick up geometry from nearby, unrelated surfaces. A cage mesh — a slightly inflated copy of the low-poly — offers finer control over ray origins.
5

Map Types as Channels of Information

Each bake pass captures a specific aspect of appearance: diffuse (base color), normal (surface orientation), AO (ambient occlusion), roughness, and emission. Together, these maps reconstruct the visual impression of a complex shader using only simple texture lookups.
KEY TAKEAWAY
Think of texture baking as photographing a painting under controlled studio lighting and then printing the photograph onto a postcard. The postcard is far simpler than the original — it has no brushstroke depth, no varnish sheen — but a viewer who only glances at it still perceives the essential image. In the same way, a baked texture is a flat snapshot of what a complex shader or high-resolution model looks like, packaged in a form that a real-time engine can display without re-doing the expensive computation every frame.

Visual Explanation — The Baking Pipeline

The diagram below illustrates the conceptual pipeline of a typical texture bake in Blender. On the left, you see the authoring side — a high-poly sculpt with a complex Cycles node graph. In the center, the bake operation casts rays and evaluates shading. On the right, the results land on a UV-mapped low-poly mesh as flat image textures ready for export to a game engine.

The three-stage baking pipeline. Authoring (left) holds the high-fidelity data. The bake operation (center) casts rays from the low-poly surface, evaluates the shader at each hit, and writes the result to an image texture. The output (right) is a lightweight, game-ready asset with multiple flat texture maps.

Notice that the authoring side does not even require a UV map — procedural textures like Noise, Voronoi, and Musgrave exist purely in 3D space. It is only the low-poly target that needs a carefully laid-out UV unwrap, because the baked images are 2D. This asymmetry is a crucial conceptual point: the bake operation acts as a translator between the three-dimensional procedural world of a path-tracer and the two-dimensional texture world of a game engine. Every texel in the output image has a one-to-one correspondence with a UV coordinate on the low-poly mesh, and the color written to that texel is determined by whatever the renderer 'sees' when it shoots a ray outward from that surface point into the high-poly source.

How Baking Works — The Conceptual Mechanism

While texture baking does not require calculus from the artist's perspective, understanding the underlying mechanism helps you make better decisions about resolution, ray distance, and sample count. At its core, a bake iterates over every pixel (texel) of the target image. For each texel, the baker performs the following conceptual steps.

Step-by-Step Ray Evaluation

  1. UV → 3D mapping: The baker looks up which triangle on the low-poly mesh owns this texel via the UV map, then computes the corresponding 3D position (P) and surface normal (N) on that triangle using barycentric interpolation.
  2. Ray construction: A ray is constructed from P, shooting outward along N (or along the cage normal, if a cage is used). The ray extends both forward and backward by the user-specified ray distance to account for concavities.
  3. Intersection test: The ray is tested against the high-poly source mesh. The closest intersection point becomes the sample location.
  4. Shading evaluation: The renderer evaluates the requested data at the intersection — this might be the surface normal (for a normal map), the combined diffuse color, the ambient occlusion factor, or any other pass type.
  5. Texel write: The computed value is written to the RGBA channels of the target image at the texel's coordinates. Anti-aliasing may involve multiple jittered samples per texel.
TEXEL DENSITY
TD = √(Aᵤᵥ / A₃ᴅ) × R
Where TD is texel density (pixels per unit), Aᵤᵥ is the area of the UV island in normalized UV space (0–1), A₃ᴅ is the surface area of the corresponding geometry in world units, and R is the texture resolution in pixels. Maintaining consistent TD across all islands ensures uniform sharpness.
REQUIRED RESOLUTION
R = TD_target × √(A₃ᴅ / Aᵤᵥ)
This rearrangement lets you calculate the minimum texture resolution needed to achieve a desired texel density. For example, if your target is 512 pixels per meter and a character's body occupies 40% of UV space but spans 2 m² of surface, you can solve for the appropriate image size.
⚠️ Margin / Bleed Pixels
Always add a margin (also called bleed or dilation) of at least 4–8 pixels around each UV island. Without margin, texture filtering in the game engine will sample empty space beyond island edges, producing visible seams. Blender's bake settings include an 'Extend' option that fills these border pixels with the nearest valid color.

Map Types — A Detailed Breakdown

A single model in a modern game engine is typically dressed with multiple texture maps, each encoding a different channel of surface information. Understanding what each map stores, how it is baked, and what color space it uses is essential for producing correct results that look right in the target engine.

Eight common baked map types. Note that Diffuse and Emission use sRGB color space, while data maps like Normal, AO, and Roughness must remain in linear space to avoid gamma-related errors in the engine.

A critical distinction exists between color maps and data maps. Color maps (Diffuse, Emission, Combined) carry perceptual color information and should be saved in sRGB to match how monitors display color. Data maps (Normal, AO, Roughness, Metallic, Curvature) encode numerical information — a normal map's blue channel, for instance, represents the Z component of a surface normal vector, not a visual 'blue.' Storing data maps in sRGB would apply a gamma curve to the values, distorting the information and causing rendering artifacts like incorrect lighting or overly glossy surfaces. Always ensure your Image Texture nodes in Blender are set to Non-Color for data maps.

Worked Example — Baking a Character Head

Let us walk through a conceptual example of baking normal and diffuse maps from a sculpted character head onto a game-ready low-poly version in Blender. This mirrors a standard production workflow you might encounter in a game art studio.

Baking a High-Poly Sculpted Head to a Low-Poly Game Mesh
1
Step 1 — Prepare the High-Poly SourceYou have a sculpted head in Blender with approximately 2 million polygons, detailed pore-level displacement, and a procedural skin shader using the Principled BSDF node with a Noise Texture driving the subsurface color and a Bump node adding surface micro-detail. This mesh does not need a UV map because the procedural textures are evaluated in 3D space.
2
Step 2 — Prepare the Low-Poly TargetUsing Blender's remesh or retopology tools, you create a clean quad-based mesh of approximately 8,000 polygons that follows the same silhouette as the sculpt. You UV-unwrap this mesh using seams placed along the ears, jawline, and back of the head. The UV layout is packed into a single 0–1 UV tile with minimal stretching. An image texture node (2048 × 2048, 32-bit float, set to Non-Color for the normal pass) is created in the shader editor and selected — this is the target canvas for the bake.
Target image: 2048 × 2048 px, ~8K polys, clean UVs.
3
Step 3 — Configure the Bake SettingsIn the Render Properties panel (Cycles renderer), scroll to the Bake section. Set the bake type to Normal with Space set to Tangent (the standard for game engines). Check Selected to Active — this tells Blender to use the selected object (high-poly) as the source and the active object (low-poly) as the target. Set Ray Distance to 0.05 (5 cm, assuming real-world scale). Set Margin to 16 pixels. Set samples to 8 for a clean, noise-free result.
Bake type: Normal (Tangent), Selected to Active, Ray Distance 0.05, Margin 16 px, 8 samples.
4
Step 4 — Execute the Bake and InspectSelect the high-poly mesh first, then Shift-select the low-poly mesh (making it the active object). Click Bake. Blender iterates over every texel of the 2048 × 2048 image, casts rays from the low-poly surface, finds the nearest high-poly surface point, and records the tangent-space normal as an RGB color. The result should appear predominantly blue-purple (indicating normals pointing roughly outward) with subtle color shifts encoding fine geometric detail like wrinkles and pores. Inspect for artifacts: dark spots (missed rays — increase ray distance), bright seams (UV island boundaries — increase margin), or noisy patches (increase sample count).
Normal map baked successfully — 2048 × 2048 tangent-space normal map in linear color space.
5
Step 5 — Repeat for Diffuse, AO, and RoughnessCreate new image textures for each pass. For the Diffuse bake, switch the bake type to Diffuse and uncheck Direct and Indirect contributions (keep only Color) to avoid baking lighting into the albedo. For AO, select the Ambient Occlusion bake type. For Roughness, route the roughness value to an Emission shader via a node trick, then bake as Emit. Save all images as PNG (8-bit) for color maps and PNG or EXR (16-bit) for data maps.
Four baked maps ready for export: Normal, Diffuse (Color Only), AO, and Roughness.
6
Step 6 — Export to Game EngineApply the baked textures to the low-poly mesh using Image Texture nodes connected to the Principled BSDF. Export the model as glTF 2.0 (.glb) — Blender's glTF exporter automatically embeds the textures, respects PBR channels, and is natively supported by Unity, Unreal, Godot, and the web via three.js. In the target engine, verify that Normal and Roughness textures are imported as Linear, not sRGB.
Game-ready .glb file: ~8K poly mesh + 4 baked textures, rendering at 60 FPS with visual detail approximating the 2M poly sculpt.

Strengths, Limitations & Common Pitfalls

Texture baking is a powerful optimization technique, but it is not without costs. Understanding the trade-offs allows you to make informed production decisions — knowing when baking is the right approach and when alternative strategies might serve better.

Strengths, limitations, and common pitfalls of texture baking workflows
StrengthsLimitationsCommon Pitfalls
Massive performance gain — complex shading becomes a simple texture lookup, enabling real-time frame rates.Baked data is static — if lighting or geometry changes, the bake must be redone.Forgetting to uncheck Direct/Indirect on a Diffuse bake, inadvertently baking scene lighting into the albedo map.
Format interoperability — flat images (PNG, EXR, JPEG) are universally supported across engines and platforms.Resolution-dependent — quality is capped by texture resolution and texel density; close-up views may reveal pixelation.Using sRGB color space for normal maps, causing washed-out lighting and incorrect surface detail.
Transfers sculpt detail — millions of polygons of surface detail encoded in a lightweight normal map.UV dependency — overlapping UVs produce corrupted bakes; unique UVs are mandatory for baking.Insufficient margin/bleed causing visible seams at UV island boundaries, especially with mip-mapping enabled.
Supports PBR workflows — aligns perfectly with metallic/roughness and specular/glossiness pipelines.Bake times can be long for high sample counts or large resolutions, especially on CPU-only setups.Setting ray distance too high, causing rays to hit geometry from adjacent, unrelated parts of the model.
KEY TAKEAWAY
Texture baking is analogous to printing a high-resolution photograph of a detailed oil painting, then framing the print instead of the original. The print is lighter, cheaper, and safer to transport — much like a baked texture is cheaper for a GPU to render — but it cannot capture every nuance of impasto brushwork. Knowing when the print is good enough and when you need the original is the art of production optimization.

Connection to Advanced Workflows

Texture baking as described in this lesson represents the foundational workflow. In professional production, several advanced techniques build upon these principles, extending baking's utility into more complex scenarios. Understanding where basic baking ends and these advanced methods begin will help you identify growth areas in your pipeline as your projects scale.

Basic baking vs. advanced production extensions
ConceptBasic Baking (This Lesson)Advanced Extension
UV SpaceSingle 0–1 UV tile per object; manual unwrap and pack.UDIM tiles (multiple UV tiles), allowing different body parts to have independent high-resolution maps. Supported in Blender 2.82+.
Bake SourceHigh-poly mesh with procedural or painted shaders.Multi-resolution modifier baking, cage-based baking for precise ray control, or baking from particle/hair systems.
AutomationManual setup per map type; click 'Bake' for each pass.Python-scripted batch baking across multiple objects and passes. Add-ons like SimpleBake or BakeLab automate the full pipeline.
Channel PackingEach map is a separate image file.Multiple grayscale maps (AO, Roughness, Metallic) packed into the R, G, B channels of a single texture to reduce draw calls and VRAM usage.
Real-Time BakingOffline bake in Cycles; results are static images.Runtime lightmap baking in engines (e.g., Unreal's Lumen, Unity's Progressive Lightmapper) that can update lighting bakes during development or even at load time.

As you advance in your practice, you will likely encounter Substance Painter and Marmoset Toolbag, which provide dedicated baking environments with GPU acceleration, automatic cage generation, and real-time preview of bake results. These tools complement Blender's built-in baker by offering faster iteration cycles and specialized features like ID map baking for mask generation. However, the conceptual foundation remains identical to what you have learned here: UV-mapped target, ray-cast intersection, shader evaluation, texel write.

Practice Problems

PROBLEM 1CONCEPTUAL
Explain in your own words why a normal map baked from a high-poly sculpt must be stored in linear color space rather than sRGB. What visual artifact would occur if you mistakenly saved and imported it as sRGB in a game engine?
PROBLEM 2BASIC CALCULATION
A character model has a total 3D surface area of 3 m². Its UV layout occupies 75% of the 0–1 UV space. You want a texel density of 512 pixels per meter. Using the formula R = TD × √(A₃ᴅ / Aᵤᵥ), what texture resolution do you need?
PROBLEM 3INTERMEDIATE
You bake a normal map using 'Selected to Active' with a ray distance of 0.02 m. The bake mostly looks correct, but the character's nose and ears show dark, artifact-filled patches. Meanwhile, the flat cheeks and forehead bake cleanly. Diagnose the likely cause and describe how you would fix it without introducing artifacts on the flat areas.
PROBLEM 4APPLIED
You are preparing a set of modular environment assets (walls, floors, pillars) for a mobile game with strict performance budgets. The art director requires all assets to share a single 2048 × 2048 texture atlas. Describe a baking strategy that maximizes visual quality across all assets while respecting this constraint. Address UV layout, texel density prioritization, and which map types you would bake.
PROBLEM 5CRITICAL THINKING
A growing number of game engines now support runtime procedural materials (e.g., Unreal's Material Editor, Godot's Visual Shader). Given this trend, critically evaluate whether texture baking will remain a core technique in game art pipelines over the next decade, or whether procedural materials will make it obsolete. Support your argument with at least three specific technical or practical considerations.

Lesson Summary

Texture baking is the process of pre-computing complex shading data and recording it as flat 2D images that real-time engines can sample efficiently. The technique relies on a UV-mapped low-poly target mesh and a ray-casting mechanism that transfers information — surface normals, color, occlusion, roughness — from a high-poly source onto the target's texture. Key settings include ray distance (how far rays extend to find source geometry), margin/bleed (extra pixels around UV islands to prevent seams), and texel density (pixels per unit of surface area, which must remain consistent for uniform quality).

Different map types capture different aspects of appearance — Diffuse for base color (sRGB), Normal for surface orientation (Linear), AO for crevice shadows, and Roughness for microsurface detail. Correct color space assignment (sRGB for color maps, Linear/Non-Color for data maps) is essential to avoid rendering artifacts in the target engine. The baked assets export seamlessly via formats like glTF and FBX, making texture baking one of the most important interoperability bridges between Blender and real-time applications.

Varsity Tutors • Blender • Texture Baking — Bake textures conceptually for game/real-time workflows