Digital Artists

UV Unwrapping: Getting Started With Seams and Islands

Where to cut, why a checker pattern is the only honest test, and the one habit that makes texturing stop feeling like guesswork.

Your model looks great. You apply a texture and the wood grain runs sideways down one leg, the brick stretches into smears across a corner, and the lettering you placed carefully is on the inside of the mesh.

That is a UV problem, and no amount of better texture work will fix it.

What a UV map is

A 3D surface has to be painted using a 2D image. A UV map is the instruction for how to lay that image on. Every vertex in your mesh gets a second pair of coordinates — U and V instead of X, Y, Z — saying where in the image that vertex sits.

The analogy that actually helps is a sewing pattern. A shirt is a 3D object. Its pattern is a set of flat pieces on fabric, cut so that when they are sewn along their seams they form a shirt. UV unwrapping is making the pattern. Your seams are where you cut. Your islands are the flat pieces.

And like a sewing pattern, there is no way to flatten a curved surface without either cutting it or distorting it. That is not a tool limitation, it is geometry — you cannot flatten a sphere. Every choice you make is a trade between how many cuts you accept and how much stretch you accept.

Step 1: Look at a checker before you look at a texture

Do this before anything else, every time.

  1. Create a new material with a checker texture (in Blender: Shading workspace, add an Image Texture node set to a generated checker, or use the Material Preview with a UV grid)
  2. Assign it to the whole model
  3. Look at it from every angle

You are looking for exactly three things:

  • Squares that are not square — stretching. The UVs are distorted there.
  • Squares of different sizes on different parts — inconsistent texel density. One area will be sharp and another blurry at the same texture resolution.
  • Checker that jumps or mirrors across an edge — a seam in the wrong place, or a flipped island.

A checker is honest in a way a real texture is not. Wood grain hides stretching because grain is directional anyway; brick hides scale inconsistency because you half expect bricks to vary. A grid of identical squares has nowhere to hide.

In Blender, the quickest version: Material Preview mode, then in the UV Editor choose UV Grid or Color Grid from the new-image presets and assign it. Thirty seconds, and it will save you an afternoon.

Step 2: Place seams like a tailor

Default automatic unwrapping — Smart UV Project and its equivalents — works by cutting wherever the angle between faces exceeds a threshold. It produces a technically valid map with seams in arbitrary places, which is fine for a prop that will be seen once from across a room and wrong for anything else.

Choose your own. The rules:

Hide seams where geometry already breaks. Inside corners, under overhangs, along a hard crease, behind a handle. A seam is a visible discontinuity in the texture; put it where the eye already expects a discontinuity.

Hide seams where the camera will not be. The underside of a table, the back of a head, the inside of a sleeve. This is the single highest-value rule and it costs nothing.

Cut along the natural tubes. Arms, legs, fingers, pipes and handles all want to be cylinders unrolled into rectangles. One seam running the length of the inside of a limb gives you a clean flat strip. Consider how clothing is actually made — the seam is on the inside of the arm and under the armpit, not down the front.

Add seams to kill stretch, not to be tidy. More islands is not better. Each seam is a place where a texture can mismatch, where a normal map can show a crease, and where a paint stroke stops. Add a cut when the checker tells you something is stretched, not because a shape looks like it ought to be separate.

In Blender: select edges, then Edge → Mark Seam (or Ctrl+E). Marked seams show red. Then select all in Edit Mode and U → Unwrap.

Step 3: Check for the four classic faults

Unwrap, then look at the UV editor and the checker together for:

Stretching. Non-square checkers. Fix by adding a seam near the problem area, or by relaxing — in Blender, select the island and use U → Unwrap with Conformal rather than Angle Based, or pin a few vertices and re-unwrap.

Overlapping islands. Two parts of the mesh occupying the same UV space. Fine if you meant it — symmetrical parts sharing texture is a legitimate space saving — and a disaster if you did not, because painting one paints the other. Blender’s UV editor has UV → Overlap Select to find them.

Flipped islands. An island mirrored relative to the others. Text reads backwards, normal maps light wrong. Turn on the overlay for flipped UVs and rotate or mirror the island back.

Inconsistent texel density. Measured properly, this is pixels-per-centimetre of surface. A character’s face should get more texture area than the soles of their boots. Blender’s UV → Average Islands Scale normalises everything to equal density, which is the right starting point — then deliberately scale up the islands that matter.

Step 4: Pack, with margin

Packing arranges islands inside the 0–1 UV square to use the space efficiently. In Blender: UV → Pack Islands.

The setting that matters is margin. Islands packed edge to edge will bleed into each other, because:

  • Mipmapping averages neighbouring pixels at lower resolutions, pulling colour across island boundaries
  • Texture filtering samples adjacent pixels
  • Any baked map — ambient occlusion, normals, lighting — needs a few pixels of padding to dilate into

A margin of roughly 0.005 to 0.01 of UV space is a reasonable default at typical texture sizes, more for lower-resolution textures where each pixel covers more surface. If you are seeing thin wrong-coloured lines along the edges of your islands in the render, that is bleed and the margin is too small.

Leave the wasted space. Perfect packing with no gaps is a false economy.

Step 5: Decide the texel density on purpose

Pick a number and apply it across the project: pixels per unit of surface. A common convention is 1024 pixels per metre for environment work, scaled up for hero assets and down for distant geometry.

Why this matters: if one object in a scene has four times the texel density of the one next to it, the difference is visible as one object looking sharp and the other soft, and no amount of texture authoring will hide it. Consistent density across a scene reads as a coherent level of detail. Inconsistent density reads as a mistake, which it is.

The habit

Unwrap early, not late. Specifically: unwrap once as soon as the silhouette is final, with a checker applied, before any detail modelling and long before texturing.

Two reasons. First, UV problems are cheap to fix on simple geometry and expensive on dense geometry. Second, having a checker on your model while you model it tells you about proportion and scale in a way a grey surface does not — a checker reveals a leg that is subtly tapered wrong in a way shading hides.

The projects where UV unwrapping feels like a miserable chore are almost always the ones where it was left until after everything else was finished.

Sources