Course 2 · Game Asset · Intermediate

UVs the agent quietly gets wrong

The agent will report "UV unwrap complete" over a layout with overlapping islands, seams running across visible faces, and texel density that swings 4x across the model — none of which shows up until a texture is applied and the seams scream.

Read this module through your lens

Designers: seams are where the texture tears. This is about telling the agent to hide them where you won't look.

The unwrap that looks done and isn’t

Unwrapping flattens a 3D surface into a 2D texture space so paint and baked detail can be mapped onto it. The agent can run an unwrap in one call and will tell you it is complete. The problem is that a finished-looking unwrap and a usable one differ on three properties you cannot see in the UV editor’s wireframe: whether islands overlap, where the seams fall, and whether texel density is uniform.

Overlaps mean two faces share the same texture pixels, so painting one paints the other. Bad seams put the tear across the face the player stares at. Non-uniform texel density makes one part of the model crisp and the adjacent part blurry, because they were given different amounts of texture space.

None of this surfaces until a texture lands on the model. The intermediate skill is to force the check before that moment.

The case study: a painted mug

prompt 1

”UV unwrap this mug.”

failure

”Unwrap complete.” A checker texture tells the truth: the handle’s island overlaps the body, so the logo painted on the body ghosts onto the handle. The main seam runs straight down the front. And the checker squares on the rim are half the size of those on the body — the rim will look twice as sharp as everything else.

fix · prompt 2

”Re-unwrap: no overlapping islands, put the seam on the back of the body behind the handle, and normalise texel density so checker squares are uniform across all islands. Apply a checker texture and report the overlap check and density spread.”

output

Uniform checkers, seam hidden behind the handle, no overlap. The body and rim now take texture at the same resolution.

The checker texture is your X-ray

You do not need to read UV coordinates to judge an unwrap — you need one tool. Apply a checker texture and the three invisible properties become a glance:

Overlaps show up as garbled or doubled squares where two islands fight for the same pixels. Texel-density problems show up as squares that are noticeably bigger on one part than another — same texture, different scale, because those faces got more or less UV space. Seam placement you simply look for from the player’s camera: is the tear on the back, or across the face?

So the workflow is: prompt for the unwrap with the three properties named, then apply the checker and look. If the squares are uniform, the seams are hidden, and nothing doubles, the unwrap is usable. The agent’s “complete” never told you any of that.

Hands-on exercise

Take a low-poly model from the previous module. Prompt for a plain unwrap, then apply a checker texture and screenshot it — look for overlaps, a visible-face seam, and uneven square sizes. Re-prompt naming the three properties (no overlaps, hidden seam, uniform density) and re-check with the checker. Save both checker screenshots as the before/after.

The same lesson, a different object

prompt 1

UV unwrap this crate.

failure

A checker texture exposes it: the lid island overlaps a side panel, so painting the lid ghosts onto the side. The main seam runs across the front face, and the plank ends are crisper than the faces — uneven texel density.

fix · prompt 2

Re-unwrap with no overlapping islands, seams on the back and bottom edges only, and uniform texel density. Pack tightly. Apply a checker texture and report the overlap check.

output

Uniform checker squares, seams hidden, no overlap. Same three invisible properties — overlaps, seam placement, texel density — that the mug needed.

The failure gallery

Each of these is caught by a quality gate — keep the cheatsheet open while you work.

See the journey

🖼 Checker-texture screenshots, before and after — uneven squares and ghosting vs a clean, uniform grid. screenshot slot · supplementary to the written core
A UV unwrap is judged by three invisible properties — no overlaps, sensible seam placement, uniform texel density — that the agent neither optimises for nor reports unless asked. Name the three, demand the layout be checked against them.

Cheatsheet

Prompt skeleton
UV-unwrap [object] for texturing. No overlapping islands (unless intentionally stacked — say which). Place seams on hidden/back edges, not across visible front faces. Aim for uniform texel density across islands; pack efficiently. Report: overlap check (pass/fail), seam locations, texel-density spread.
Failure modes
  • Overlapping islands (two faces share texture space unintentionally)
  • Seams across the most-visible face
  • Texel density varies wildly (one part blurry, another crisp)
  • Wasted UV space (tiny islands, huge gaps)
  • Agent reports unwrap complete with none of the above checked
Key operations
  • Mark seams deliberately (hidden edges)
  • Unwrap + check for overlaps
  • Equalise / normalise texel density
  • Pack islands to fill the 0-1 space
Quality gates
  • Zero unintended overlaps?
  • Seams hidden from the primary view?
  • Texel density roughly uniform across islands?
  • UV space reasonably filled (not mostly empty)?
Workflow steps
  • Decide seam strategy from the camera view
  • Prompt for unwrap + the three properties
  • Apply a checker texture to eyeball density + seams
  • Fix overlaps / re-place the worst seam
  • Log the checker-texture screenshot
Next module
  • game_baking_maps — baking high-poly detail onto the low-poly.

Reflection card

Active retrieval — answer from memory before re-reading. Saved to this browser.

  • An unwrap with a checker texture applied, screenshotted.
  • An explicit overlap check result and a note on seam placement.
  • One UV failure (overlap, bad seam, or density swing) caught and fixed.

Next: game_baking_maps — baking high-poly detail onto the low-poly.

Finish — back to Game Asset →