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
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.
- 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.
- 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.
- 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.
Related
- Trim sheets — where density concentration is deliberate
- Spec before modelling — the document where you commit to one density for a whole kit
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.