The 3D Handbook
Topic

UV packing and padding

How to arrange UV islands so they use as much of the texture as possible, how much space to leave between them at each resolution and why mipmaps decide that, what dilation does, and which islands deserve the most space.

uv-mappingbakingoptimisation

Packing is arranging UV islands inside the 0–1 square so they use as much of the texture as possible. Padding is the empty space you leave between islands, and the colour you bleed into it, so that neighbouring islands do not leak into each other.

Both are trade-offs: tighter packing means sharper textures, but too little padding causes visible seams once the texture is filtered and mipmapped.

#Packing efficiency

Every pixel outside an island is memory you pay for and never see. A bad layout can easily waste a quarter of the texture: KrisLW on Polycount says "I wouldn't be surprised if at least 1/4th - or more - of your map is empty" in a typical beginner layout (Polycount: Reducing UV Waste Need Help).

Opinions on acceptable waste vary. In a 2015 critique, ZacD called "under 25% wasted" fine, and WarrenM said 17% waste "is not bad by any means" (Polycount: Are these UVs good?). As a quick reference, the cross-shaped cube unwrap in UV mapping uses only 37.5% of the square, so almost two-thirds is wasted.

Ways to pack tighter, from the same threads:

Automatic packers handle most of this. Blender's Pack Islands can rotate islands "as well as translation and scaling, to optimize texture usage" (Blender Manual: Editing). RizomUV reworked its packing in 2022, partly because of growing UDIM use in games (80 Level: Meet RizomUV 2022).

#Padding

#Mipmaps and padding

A texture in a game is stored with mipmaps: smaller copies at half, quarter and eighth size, used as the surface gets further away (Polycount: Padding!). Each mip halves the pixel count in both directions, so a gap of 16 px at full resolution is 8 px at the next mip, 4 px at the one after, and so on.

When the gap shrinks below a pixel, one pixel covers both islands and their colours mix. Mark Dygert explains that larger, chunkier pixels at low mips let the empty area bleed into UV space and cause seams (Polycount: Padding!). JohnnyRaptor adds that padding exists so that mipmapped textures do not get colours "bleeding in at the borders" (Polycount: Edge padding for game characters).

Five horizontal strips of pixels, one for each mip level from 2048 down to 128 pixels. Island A is dark, the gap white and island B mid grey. The gap is 16, 8, 4 and 2 pixels wide in the first four strips; in the 128 pixel strip the two middle pixels are orange because each mixes an island with the gap.
The same two islands at five mip levels. Halving the resolution halves the gap; at mip 4 of a 2048 texture, pixels straddle both the island and the gap.Diagram by the handbook author

#Values per resolution

A 2012 Polycount thread quotes these edge padding guidelines, apparently copied from the old Polycount wiki (Polycount: Can not get the right padding):

Texture size Padding
128 px 2 px
256 px 2 px
512 px 4 px
1024 px 8 px
2048 px 16 px

The same text adds that "It works best when the UV gutters are at least twice this width", and that the values "apply differently depending on the engine, filtering type, and mip map mode" (Polycount: Can not get the right padding). In 2017, EarthQuake suggested "16 pixels between islands at 4k is probably fine for many cases" and called 16 to 32 px "pretty safe for a 4k texture"; 32 px is only needed if you expect a 4K texture "to be mipped down to 128 and still hold up" (Polycount: Padding!).

#Padding for lightmaps

Lightmaps are tiny, so the same rule produces large percentages. Epic's old UE3 guide says "4 texels are usually required to avoid all bleeding, as DXT compression operates on 4x4 texel blocks", so "for a lightmap resolution of 32, the padding between the UV charts should be 12.5% of the entire UV space" (Unreal Development Kit documentation: Unwrapping UVs for Lightmaps). See lightmap UVs.

#Dilation

Dilation (also called edge padding or bleeding) fills the empty space around each island with that island's edge colour. Even if a low mip mixes neighbouring pixels, it mixes similar colours, so no seam shows.

Every baker does this. Substance's bakers "Dilate/extend the pixels of the UVs outside or their border by the amount of pixels given" (Substance 3D Bakers documentation: Common parameters). Blender's bake Margin extends the result "this many pixels beyond the border of each UV island" (Blender Manual: Render Baking). Marmoset's padding "determines how far to extend the baked content past the UV borders" and adjusts automatically to resolution (Marmoset: The Toolbag Baking Tutorial).

Note that dilation fills the gap but cannot create one. Bal argues "There can't be too much edge-padding", but stresses leaving enough space between shells during unwrapping (Polycount: Edge padding for game characters).

#Orientation and pixel alignment

Edges that run at an angle across the pixel grid are drawn as stair-steps. Substance's documentation: "Aliasing often occurs because the geometry of the UVs is not aligned with the pixel grid" (Substance 3D Bakers documentation: Aliasing on UV seams). Its fixes are a higher resolution, more anti-aliasing, aligning UVs "to the pixel grid", and a better texel ratio (Substance 3D Bakers documentation: Aliasing on UV seams).

So orient islands with straight edges horizontally or vertically, and align strips with the direction of the texture detail (wood grain, panel lines, text).

#Island scaling priority

Islands do not all need the same amount of space. A common order of priority:

  1. What the player sees closest and most: the front of a prop, the top of a table, the grip of a first-person weapon.
  2. Everything else visible, at the project texel density.
  3. Rarely seen areas: darkchief117 suggests shrinking "anything that will almost always be obscured from the player view or made black by a lightmap" (Polycount: Reducing UV Waste Need Help).

Two cautions from the same discussions. DWalker notes small parts like "handles, pipes, and screws could probably use the normal texel density" rather than extra (Polycount: Reducing UV Waste Need Help). And Joost warns that scaling down low-priority islands too early is a mistake (Polycount: Are these UVs good?): pack first at equal density, then shrink only what is truly hidden.

#In different tools

#Further reading and watching

Shows Blender's packing engine, including pinning islands and keeping stacked islands together. Watch on YouTube

References

  1. Polycount forum (Mark Dygert, darkchief117, DWalker, KrisLW and others) · Reducing UV Waste Need Help · Polycount, 2014 · forum · accessed 2026-10-21
  2. Polycount forum (Joost, ZacD, WarrenM, cookedpeanut and others) · Are these UVs good? · Polycount, 2015 · forum · accessed 2026-10-21
  3. Blender Foundation · Editing (UV Editor tools) · Blender Manual (3.6), 2023 · docs · accessed 2026-10-21
  4. Arti Sergeev · Meet RizomUV 2022 · 80 Level, 2021 · article · accessed 2026-10-21
  5. Polycount forum (EarthQuake, Mark Dygert, Neox, Eric Chadwick and others) · Padding! · Polycount, 2017 · forum · accessed 2026-10-21
  6. Polycount forum (JohnnyRaptor, Dylan Brady, Bal and others) · Edge padding for game characters · Polycount, 2012 · forum · accessed 2026-10-21
  7. Polycount forum (Eric Chadwick, styx), quoting the Polycount wiki · Can not get the right padding · Polycount, 2012 · forum · accessed 2026-10-21
  8. Epic Games · Unwrapping UVs for Lightmaps (UE3) · Unreal Development Kit documentation · docs · accessed 2026-10-21
  9. Adobe · Common parameters (Substance bakers) · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  10. Blender Foundation · Render Baking (Cycles) · Blender Manual (2.93), 2021 · docs · accessed 2026-10-21
  11. Joe Wilson · The Toolbag Baking Tutorial · Marmoset, 2017 · article · accessed 2026-10-21
  12. Adobe · Aliasing on UV seams · Substance 3D Bakers documentation · docs · accessed 2026-10-21
  13. Autodesk · Unfold UVs options · Maya 2026 Help · docs · accessed 2026-10-21

Also consulted

Last updated 2026-10-22