The 3D Handbook
Topic

Texture atlases

Packing the textures of several objects into one texture so they share a material; how atlases differ from trim sheets, why padding matters, how mipmaps make neighbouring tiles bleed, and decal atlases.

texturingatlasesoptimisationdraw-calls

A texture atlas is one texture that holds the textures of several different objects, each in its own region. Because all those objects now read from the same texture, they can share one material. Unity's manual describes combining the textures of otherwise identical materials into one large texture as "texture atlasing", and explains why it matters: "Only GameObjects sharing the same Material can be batched together" (Unity Manual: Draw call batching).

Atlases save materials and draw calls more than they save pixels. The total texture area is roughly the same as before, but it is held in one file.

#Atlas or trim sheet?

The two are often confused because both are "one texture, many meshes". The difference is how the space is used.

Texture atlas Trim sheet
Content Unique regions, one per object (or per part) Strips that tile horizontally
UVs Each object's islands stay inside its own region Islands overlap freely and run off the edges
Tiling Regions do not tile (or tile only with shader tricks) Every strip tiles
Reuse A fixed set of objects Any mesh that fits a strip
Typical use Groups of small props, decals Architecture, modular kits

Many kits use both. The free Modular Dungeon Props kit on Sketchfab, made to learn modular texturing, uses "a brick trim sheet" plus "a texture atlas" alongside a few dedicated materials (Sketchfab: Modular Dungeon Props). Commercial courses teach atlases next to modular and weighted-normal workflows (FlippedNormals: Sci-Fi Game Environment in Blender & UE4).

Twelve game-ready kit pieces (CC BY 4.0) that combine a brick trim sheet, a texture atlas, and separate rusty metal, wood and altar materials. Open the model inspector's texture view to compare the atlas layout with the trim sheet.Tom, via Sketchfab

#Building an atlas

There are two common routes:

  1. Atlas from the start. Unwrap a group of props together into one UV space and texture them as one set. Simple, and texel density is easy to match. See UV packing and padding and texel density.
  2. Atlas afterwards. Texture objects separately, then pack their finished textures into one sheet and rescale each object's UVs into its region. Useful when assets come from different artists.

Either way, group objects that appear together (one room, one market stall) and share a shader. An atlas mixing a glass bottle and a wooden crate still needs two shaders, so the saving is smaller.

#Padding and mip bleeding

Atlas regions sit right next to each other, so colours from one region can leak into another. Two things cause it:

Three versions of a 2 by 2 atlas with red, green, blue and yellow regions. At full resolution the borders are crisp. At a lower mip level the borders blur into mixed colours where regions meet. With padding (each region surrounded by a band of its own colour, dilated outward), the lower mip still blurs but the mixed band falls in the padding, not on the object's UVs.
Lower mips average across region borders. Padding (each region's edge colour extended outward) keeps the blurred band off the object's UVs.Diagram by the handbook author

The fix is padding (also called edge dilation or bleed): extend each region's edge colours outward into the gap around it. "Padding is pretty much the universal solution to this unfortunately", as marks puts it on Polycount (Polycount: manual mip maps? or how to avoid texture…). Lower mips need more of it. In the trim sheet context, Epitaph notes that lower-resolution versions need more padding to avoid bleeding (Polycount: The 'ultimate trim' technique from Sunset…).

#Decal atlases

Decals are a natural fit for atlases: dozens of small stains, cracks, labels and bolts, all used on top of other surfaces. DECALmachine for Blender packs "individual Decal textures into a single texture sheet" so the decals "use a single material and set of textures", which it calls "necessary for efficient rendering in game engines like Unity, Unreal Engine etc." (machin3.io: Atlasing). Decals that share an atlas material can render more efficiently still when joined into a single object (machin3.io: Atlasing). See also mesh decals.

#Common mistakes

  • Too little padding, so props show coloured fringes at a distance.
  • Atlasing objects that never appear together, which loads texture memory you do not need.
  • Different texel densities between regions, so one prop looks sharper than its neighbour.
  • Mixed shaders in one atlas (opaque, masked, translucent), which still need separate materials.
  • Trying to tile an atlas region with normal UV wrapping.

#Further reading and watching

References

  1. Unity Technologies · Draw call batching · Unity Manual (2020.2), 2020 · docs · accessed 2026-10-21
  2. Tom · Modular Dungeon Props (model description) · Sketchfab · web · accessed 2026-10-21
  3. FlippedNormals marketplace listing · Sci-Fi Game Environment in Blender & UE4 · FlippedNormals · course · accessed 2026-10-21
  4. Adrien Thierry · The Golden Cat · ArtStation · web · accessed 2026-10-21
  5. Jared Sobotta · River Rock Breakdown · ArtStation, 2023 · web · accessed 2026-10-21
  6. Jared Sobotta · Creating Beach Cobbles in Zbrush/Substance Designer: Free Tutorial · ArtStation · web · accessed 2026-10-21
  7. rollin, Ashaman73, marks and others · manual mip maps? or how to avoid texture bleed in atlas · Polycount, 2015 · forum · accessed 2026-10-21
  8. Makkon, Epitaph and others · The 'ultimate trim' technique from Sunset Overdrive · Polycount, 2015 · forum · accessed 2026-10-21
  9. RonHiler, Eric5h5, JessyDL, trooper and others · Bi/Trilinear filtering with tilable images on a texture atlas · Unity Discussions, 2013 · forum · accessed 2026-10-21
  10. MACHIN3 · Atlasing (DECALmachine documentation) · machin3.io · docs · accessed 2026-10-21
  11. Polycount forum (PixelMasher and others) · Creating Trim Sheets 4 Part Tutorial - Polygon Academy (thread) · Polycount, 2019 · forum · accessed 2026-10-21

Last updated 2026-10-22