🗺️ Texture Mapping & UV Unwrapping

TL;DR: Texture Mapping is the technique of “applying” 2D images onto the surface of 3D models to create colors and surface details without adding polygons. UV Unwrapping is the prerequisite step — “peeling” the 3D model into a flat map to precisely determine which part of the texture goes where on the mesh.

Think of an orange: peel it, cut it in the right places and spread it flat on a table — that’s UV Unwrapping. Then, any image printed on that flat orange peel will automatically appear in the correct position on the original 3D orange. This technique is the foundation of every 3D model in games — from characters to environments, weapons to architecture.

UV Unwrap workflow diagram: 3D sword model on the left being "unfolded" into a flat UV layout on the right with colored seam lines

Core Concepts

TermDefinition
UV Coordinates2D coordinates (U = horizontal axis, V = vertical axis) determining where on the texture each mesh vertex corresponds to
UV IslandAn independent UV piece after unwrapping — each piece is a portion of the mesh laid flat
UV SeamA cut line on the mesh to allow flat unfolding without distortion — like clothing seams
Texel DensityTexture pixel density per unit of surface area — the more uniform the better
Texture AtlasMultiple UV islands from multiple objects packed into a single texture file to optimize GPU

Operating Principles

Texture Map Types in PBR Pipeline

A complete 3D model in modern games typically needs this set of texture maps [S1]:

MapRoleNote
Albedo / Base ColorBasic surface colorContains no light or shadow information
Normal MapSimulates surface details (scratches, pores)Each pixel is a normal direction vector
Roughness MapSurface roughness/glossiness (0 = mirror, 1 = sand)Affects how light reflects
Metallic MapDistinguishes metal vs. non-metalBinary is often more effective than smooth grayscale
AO (Ambient Occlusion)Darkness in crevices and cornersUsually baked from high-poly model
Emissive MapSelf-illuminating zonesScreens, LED lights, glowing magic

Texel Density and LOD

To avoid texture being blurry in one spot and sharp elsewhere on the same character, the standard pipeline requires uniform Texel Density — typically 512 or 1024 pixels/meter [S2]. Important areas (character face) can be given higher texel density by allocating more UV space in the atlas.

UV Seam Placement — Hiding the Stitches

Seams are unavoidable but can be hidden in less visible positions: underneath arms, behind the head, along natural clothing seams. Experienced artists place seams based on both factors — technical (least distortion) and aesthetic (least visible) [S1].

Game Examples

  • The Witcher 3 (CD Projekt Red) — Geralt’s character texture atlas uses 4K resolution for body, 2K for secondary accessories — with texel density carefully calibrated so the face is always sharper.
  • Minecraft (Mojang) — Extreme opposite case: each cube face is just a 16x16 pixel tile in the shared texture atlas — the simplest possible UV Unwrap, but perfectly uniform.
  • God of War (Santa Monica, 2018) — Uses “Texture Streaming” technique — only loads the portion of the texture atlas corresponding to the area the camera is currently viewing, avoiding VRAM usage for the entire texture simultaneously [S2].

Trade-offs

AspectContent
✅ AdvantagesCreates very high visual detail without costing polygons. One texture atlas can serve multiple different LOD versions of the same model.
❌ DisadvantagesPoor UV Unwrap creates texture stretching (pattern distortion) that’s very hard to fix later. Seams show on flat surfaces or surfaces with linear patterns.
⚠️ Common Pitfall”UV Overlap” — two islands overlapping in UV space will share the same texture area — causing baking errors and lighting artifacts. Always check for overlaps before baking.

See Also