Vít Chalany

Reference · updated 2026-08-05

Texel density

What it is, the standard targets, a calculator, and the conversions you keep having to look up.

Current forEngine-agnosticExamples in Unreal Engine 5.7

Texel density is how many texture pixels cover a given amount of world space. That is all it is. It is also the single most common source of a kit looking subtly amateur, because inconsistent density is visible exactly where two surfaces meet — and it is very cheap to get right if you decide the number once, up front.

Texel density calculator

—px / cm actual
—px / m actual
—cm this texture should cover

Density is resolution ÷ surface size. Everything else — UV packing, trim sheets, whether you can get away with a 1K — is downstream of picking one number and holding the whole set to it. Pick the target from how close the camera gets, not from how important the asset feels.

The formula

density (px/cm) = texture resolution / surface size in cm
density (px/m)  = density (px/cm) × 100

A 2048 map on a 200 cm surface gives 10.24 px/cm, which is 1024 px/m. Industry convention states the per-metre figure, so that surface is “1K per metre”.

Standard targets

Target px/m px/cm Use for
Background 256 2.56 Distant architecture, terrain, anything the camera never approaches
Common standard 512 5.12 Most game environments. The default answer if you have no reason to pick another
Close-up 1024 10.24 Hero props, interactive objects, anything within a metre of the camera
Cinematic 2048 20.48 First-person hands, weapons, cinematic close-ups
Extreme 4096 40.96 Rarely justified. Usually a sign the surface should be split

Quick conversions

The table you actually keep coming back for: what surface size a given texture covers at each standard density.

Texture @ 256 px/m @ 512 px/m @ 1024 px/m @ 2048 px/m
256 100 cm 50 cm 25 cm 12.5 cm
512 200 cm 100 cm 50 cm 25 cm
1024 400 cm 200 cm 100 cm 50 cm
2048 800 cm 400 cm 200 cm 100 cm
4096 1600 cm 800 cm 400 cm 200 cm
8192 3200 cm 1600 cm 800 cm 400 cm

Read it as: at the common 512 px/m standard, a 2K map covers a 4-metre surface. That one fact answers most day-to-day questions.

Checking it in Unreal

The engine will tell you rather than making you measure. In the viewport, switch to Optimization Viewmodes → Texture Density. Green is roughly on target, red is over-textured, blue is under.

For a numeric answer on a specific mesh, the checker-texture method is still the most reliable: apply a material with a checker pattern at a known scale and count squares. Unreal ships one at /Engine/EngineMaterials/DefaultDiffuse — but a purpose-made checker with labelled 10 cm squares is worth making once and keeping in your starter project forever.

When to deliberately break the rule

There are three legitimate reasons, and “this asset felt important” is not one of them.

  1. Camera distance genuinely differs. A skybox building at 256 and a door handle at 1024 in the same scene is correct, not inconsistent, because nothing ever sees both at the same apparent size.
  2. Trim sheets concentrate detail. A trim sheet legitimately runs higher density than the large flat surfaces it decorates, because the trim carries the detail and the flats carry the area.
  3. Tiling rate compensates. A material that tiles 8× across a wall gets its effective density from the tiling rate, not the map size. Judge the result on screen, not the number in the asset browser.

A new part when there is something to say

A new part of a series every two or three weeks, when there is something real to say. Never weekly — the two weekly newsletters in this niche both burned out.

Setup: put your beehiiv or Kit form endpoint insrc/consts.ts as NEWSLETTER_ACTION and this becomes a real form. beehiiv is free to 2,500 subscribers with a custom domain included.