The 3D Handbook
Key term

Lightmap UVs

A second UV set where every face has its own space inside 0–1, with generous padding, so the engine can store baked lighting; how Unreal, Unity and Godot generate them, and when you no longer need them.

uv-mappinglightingbaked-lighting

Lightmap UVs are a separate UV set used only to store baked lighting. Each face needs its own space in the texture: Epic says "each face of the model needs to have its own unique space on the lightmap with no overlapping faces" (Unreal Engine documentation: Understanding Lightmapping in Unreal Engine). They usually live in the second UV channel, next to the texture UVs in channel 0.

#Why a separate set

Texture UVs can overlap, mirror and tile, because many faces may share the same pixels. Lighting cannot be shared: the shadow under a table is not on its top. Unreal notes that for normal textures "Triangles in the UV mapping can overlap", but lightmap UVs are a special case (Unreal Engine documentation: Using UV Channels with Static Meshes in…).

#The rules

Two UV squares. Left, texture UVs with a stacked pair of islands drawn dashed and one long island extending past the right edge of the square. Right, lightmap UVs with four separate islands inside the square, the background shaded orange to show the padding around them.
Texture UVs may overlap and leave the 0–1 square. Lightmap UVs may not, and every island needs padding.Diagram by the handbook author
  1. No overlap. Unreal: "no two triangles in the mesh can overlap in the 2D texture space" (Unreal Engine documentation: Using UV Channels with Static Meshes in…).
  2. Inside 0–1. Unreal: "all UV coordinate values must fall between 0 and 1" (Unreal Engine documentation: Using UV Channels with Static Meshes in…).
  3. Padding. Epic says "a minimum of four texels is usually required to avoid all bleeding artifacts" (Unreal Engine documentation: Understanding Lightmapping in Unreal Engine). The UE3 guide explains why lightmaps need so much: block compression works on 4 × 4 texels, so at a lightmap resolution of 32 the padding "should be 12.5% of the entire UV space" (Unreal Development Kit documentation: Unwrapping UVs for Lightmaps).
  4. Even density. "It's important to have an even density across your scene to get consistent lighting when using baked lighting" (Unreal Engine documentation: Understanding Lightmapping in Unreal Engine).
  5. Split where light changes sharply. Split "at sections where there are deep recesses or crevices", but remember "any edge split will break the smoothness of the lighting result" (Unreal Engine documentation: Understanding Lightmapping in Unreal Engine).

#Generating them automatically

Unreal Engine. With Generate Lightmap UVs enabled, "a lightmap UV will be generated for any static mesh by default" (Unreal Engine documentation: Generating Lightmap UVs in Unreal Engine). The FBX importer describes it as "a set of unique, non-overlapping, UVs for use with static lighting" (Unreal Engine documentation: FBX Import Options Reference). Key settings (Unreal Engine documentation: Generating Lightmap UVs in Unreal Engine):

  • Source Lightmap Index: the UV channel to generate from (your texture UVs).
  • Destination Lightmap Index: where to store the result.
  • Min Lightmap Resolution: "Dictates the minimum padding needed for UV charts when packing the UVs". Epic advises setting it "to an ideal power of 2", ideally the lowest resolution the mesh will use.
  • Lightmap Resolution: the default resolution for instances placed in a level; keep it higher than the minimum.

Unreal repacks the existing UV charts rather than re-cutting them: it "will not split UV chart edges to create separate UV islands" (Unreal Engine documentation: Generating Lightmap UVs in Unreal Engine). A badly cut texture layout therefore gives a badly cut lightmap.

Unity. The model importer's Generate Lightmap UVs option "Creates a second UV channel for the lightmap" (Unity Manual: Model tab).

Godot. Lightmaps need UV2, where "Faces must not share pixels in the texture" (Godot documentation: Using Lightmap global illumination). You can generate it on import by setting the mesh's Light Baking option to static lightmaps (Godot documentation: Using Lightmap global illumination).

Blender. Lightmap Pack "takes each of a mesh's faces, or selected faces, and packs them into the UV bounds" (Blender Manual: UV tools).

#Do you still need them?

It depends on the lighting method. See baked vs. dynamic lighting.

#Common mistakes

UV mapping · UV packing and padding · baked vs. dynamic lighting · global illumination · texel density

#Further reading and watching

References

  1. Epic Games · Understanding Lightmapping in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
  2. Epic Games · Using UV Channels with Static Meshes in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
  3. Epic Games · Unwrapping UVs for Lightmaps (UE3) · Unreal Development Kit documentation · docs · accessed 2026-10-21
  4. Epic Games · Generating Lightmap UVs in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
  5. Epic Games · FBX Import Options Reference · Unreal Engine documentation · docs · accessed 2026-10-21
  6. Unity Technologies · Model tab (FBX Importer) · Unity Manual · docs · accessed 2026-10-21
  7. Godot Engine contributors · Using Lightmap global illumination (documentation source) · Godot documentation (GitHub) · docs · accessed 2026-10-21
  8. Blender Foundation · UV tools (Lightmap Pack) · Blender Manual (3.6), 2023 · docs · accessed 2026-10-21
  9. Epic Games · Lumen Global Illumination and Reflections in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
  10. Epic Games · Viewport Modes in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21

Last updated 2026-10-22