The 3D Handbook
Topic

Decals

Projected decals add leaks, cracks, dirt, graffiti and damage on top of other surfaces without new UVs or textures; how they work in Unreal, Unity and Godot, which channels they can change, and what they cost.

texturingmaterialsengineoptimisation

A decal is a material projected onto other surfaces, like a sticker thrown at the world. Epic describes decals as "a material type that can make local modifications to a scene" by projecting properties such as base colour, roughness and normals onto level geometry (Unreal Engine documentation: Decal Materials in Unreal Engine). Environment artists use them to add leaks, cracks, dirt, graffiti and damage without touching the UVs or textures of the surfaces underneath.

This page is about projected (deferred) decals. Decals built from actual geometry are covered in mesh decals.

#How a projected decal works

A projected decal is a box. Everything inside the box receives the decal material, projected along one axis of the box. In Unreal, "the decal is drawn as a box around its affected area", and scaling the box controls "the width, height, and far-plane distance of the decal volume" (Unreal Engine documentation: Decal Actors in Unreal Engine). Unity's Decal Projector has the same idea: a size along the projected plane plus a Projection Depth, projecting along the local Z axis (Unity documentation: Decal Projector reference). Godot's Decal node uses Extents, where the Y axis controls projection length (Godot Engine documentation: Using decals).

Because the decal is projected, the receiving meshes need no extra UVs, and the decal follows whatever shape is inside the box. The drawback is distortion: a surface that runs parallel to the projection direction gets a long smear.

Side view of a wall meeting a floor. An orange decal box overlaps the corner and projects towards the wall. On the wall the decal appears at its correct size; on the floor, which runs parallel to the projection direction, the same decal is stretched into a long smear. An angle-fade label marks where the smear should be faded out.
A projected decal lands cleanly on surfaces facing the projection, and stretches on surfaces parallel to it. Keep the box shallow, or use angle fade, so the smear never shows.Diagram by the handbook author

Decals are drawn after the opaque surfaces they sit on, so they read and modify the surface data that is already on screen. In Unreal, DBuffer decals are enabled by default in UE5 projects and are applied before lighting, which avoids the washed-out look that older GBuffer decals can get with baked lighting (Unreal Engine documentation: Decal Materials in Unreal Engine).

#Blend modes and channels

Most decals do not replace the whole surface. They change one or several channels and leave the rest alone. Choosing which channels a decal writes is the main decision when making one.

Engine How you choose channels
Unreal DBuffer decals support the Translucent and Alpha Composite blend modes; Modulate silently falls back to Translucent, and the Stain mode is not supported and falls back to the default blend mode (Unreal Engine documentation). The receiving material's Decal Response (Color Normal Roughness by default, or subsets such as Normal only) controls what it accepts .
Unity HDRP The decal material has Affect BaseColor, Affect Normal, Affect Metal, Affect Ambient Occlusion, Affect Smoothness and Affect Emissive toggles. Even with base colour off, its alpha still drives opacity for the other channels (Unity documentation).
Unity URP The Decal Renderer Feature's DBuffer technique has three Surface Data levels: Albedo, Albedo Normal, and Albedo Normal MAOS (metallic, ambient occlusion, smoothness) (Unity documentation).
Godot Albedo, Normal, ORM and Emission textures. The albedo alpha masks the other maps, and Albedo Mix controls albedo opacity without weakening the normal and ORM effect (Godot Engine documentation).

HDRP packs extra channels into a mask map: red is metallic, green ambient occlusion, blue an opacity mask and alpha smoothness (Unity documentation: Decal Material Inspector reference). This is the same idea as channel packing.

#Normal-only decals

A decal that changes only the normal, and maybe roughness, adds shape without changing colour. It picks up the colour of whatever it sits on, so one decal works on concrete, metal and painted plaster alike. Godot recommends setting Albedo Mix to 0 "when creating normal/ORM-only decals such as footsteps or wet puddles" (Godot Engine documentation: Using decals). In Unreal, the closest equivalent is a receiving material whose Decal Response is set to Normal (Unreal Engine documentation: Decal Materials in Unreal Engine).

#POM decals

A decal cannot move geometry, but it can fake depth with height information and parallax. Mick West described "parallax mapped bullet holes" in Game Developer magazine in 2006: the decal's alpha channel stores a depth map, and the shader offsets the UVs per pixel so the hole looks recessed (Cowboy Programming: Parallax Mapped Bullet Holes). The basic method has no occlusion, and steep angles produce stretching near the rim (Cowboy Programming: Parallax Mapped Bullet Holes).

Parallax occlusion mapping (POM) decals are still taught today; FastTrack's decal course includes "Creating POM decals in Unreal Engine" (80 Level: In-Depth Tutorial: Creating Custom Decals for…). Not every engine supports them out of the box: Godot's decals cannot affect height for parallax and "cannot use custom shaders" (Godot Engine documentation: Using decals).

#Fading and culling

Decals should disappear when nobody can see them, both for performance and to avoid shimmering in the distance.

Layers and masks stop decals landing on the wrong things. Godot's Cull Mask keeps a terrain decal off "dynamic objects" walking over it (Godot Engine documentation: Using decals); HDRP's Decal Layer does the same per renderer (Unity documentation: Decal Projector reference).

#Sort order

When decals overlap, you need to control which draws on top. In Unreal, "Higher values draw later (on top)", but "setting many different sort orders on many different decals prevents sorting by state and can reduce performance" (Unreal Engine documentation: unreal.DecalComponent). Godot sorts by box size and camera distance, and offers a Sorting Offset as a guideline (Godot Engine documentation: Using decals). Keep sort values to a small, agreed set, for example 0 for grime, 1 for graffiti, 2 for gameplay decals.

#What decals cost

The cost of a decal depends on pixels rather than polygons. Epic states: "Screen coverage and material complexity are the biggest factors in the cost of rendering decals" (Unreal Engine documentation: Decal Materials in Unreal Engine). The complexity of the mesh underneath does not matter; the shader and the size of the box on screen do (Unreal Engine documentation: Decal Actors in Unreal Engine). Godot says the same: "a few large decals that cover up most of the screen will be more expensive to render than many small decals" (Godot Engine documentation: Using decals).

Stacked decals are a form of overdraw: each layer shades the same pixels again. Use Unreal's Shader Complexity view mode, where green to red runs from "very inexpensive" to "expensive" and pink or white means "very expensive" (Unreal Engine documentation: Viewport Modes in Unreal Engine), to find hot spots. Decals do add up: Epic notes that its ICVFX sample The Origin, which uses many mesh decals, "costs 30% more to render a frame than a more constrained scenario" <sup class="cite" data-c="ue-decal-materials">.

Other costs to know:

#What decals are used for

Decals are a quick way to make a clean tiling or trim surface look lived in. Common uses:

Decals are part of how dense places are told apart from sparse ones. On The Witcher 3, CD PROJEKT RED's Michał Janiszewski describes cities getting extra detail, such as decals, puddles and planks on the streets, guided by level, quest and living-world design (80 Level: World Building of Witcher 3).

FastTrack's decal course is a useful map of the types studios build: procedural and hand-painted leaks, edge damage and welding seams, road cracks and potholes, POM decals, image-based decals and normal-only terrain decals (80 Level: In-Depth Tutorial: Creating Custom Decals for…).

Decals are also a storytelling tool. A burn mark, a trail of footprints or a hand-print on a door tells the player what happened here; see environmental storytelling and set dressing and art passes.

#In different tools

#Further reading and watching

A practical walkthrough of placing and authoring decals in Unreal Engine 5; useful alongside the uses list above. Watch on YouTube

References

  1. Epic Games · Decal Materials in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
  2. Epic Games · Decal Actors in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
  3. Unity Technologies · Decal Projector reference (HDRP 17) · Unity documentation · docs · accessed 2026-10-21
  4. Godot Engine contributors · Using decals · Godot Engine documentation (source on GitHub) · docs · accessed 2026-10-21
  5. Unity Technologies · Decal Material Inspector reference (HDRP 17) · Unity documentation · docs · accessed 2026-10-21
  6. Unity Technologies · Decal Renderer Feature reference (Unity 6) · Unity documentation · docs · accessed 2026-10-21
  7. Polycount forum (Obscura, marks, bac9-flcl and others) · Decal technique from Star Citizen · Polycount, 2015 · forum · accessed 2026-10-21
  8. Mick West · Parallax Mapped Bullet Holes · Cowboy Programming (first published in Game Developer magazine, May 2006), 2007 · article · accessed 2026-10-21
  9. FastTrack Tutorials (Emiel Sleegers) · In-Depth Tutorial: Creating Custom Decals for Games · 80 Level · course · accessed 2026-10-21
  10. Unity Technologies · Decal Projector component reference (Unity 6) · Unity documentation · docs · accessed 2026-10-21
  11. Epic Games · unreal.DecalComponent (Python API) · Unreal Engine documentation · docs · accessed 2026-10-21
  12. Epic Games · Viewport Modes in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
  13. Unity Technologies · Decal Renderer Feature (URP 17) · Unity documentation · docs · accessed 2026-10-21
  14. Adrian Courrèges · DOOM (2016) - Graphics Study · adriancourreges.com, 2016 · article · accessed 2026-10-21
  15. Michał Janiszewski (CD PROJEKT RED) · World Building of Witcher 3 · 80 Level, 2016 · article · accessed 2026-10-21

Also consulted

Last updated 2026-10-22