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.
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.
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.
- Unity HDRP: Draw Distance is where the projector stops rendering; Start Fade is a fraction of that distance, so 0.9 starts fading at 90% (Unity documentation: Decal Projector reference). Angle Fade fades the decal by the angle between the projector and the receiving surface, and needs Decal Layers enabled (Unity documentation: Decal Projector reference).
- Unity URP: the projector has Draw Distance, Start Fade and Angle Fade, plus UV Tiling and UV Offset for picking a region of an atlas (Unity documentation: Decal Projector component reference). The renderer feature adds a global Max Draw Distance (Unity documentation: Decal Renderer Feature reference).
- Godot: Distance Fade fades out over Begin + Length, "after which it will be culled and not sent to the shader at all" (Godot Engine documentation: Using decals). Normal Fade, Upper Fade and Lower Fade hide the stretched parts on surfaces at steep angles (Godot Engine documentation: Using decals).
- Unreal: the Decal Component has Fade Start Delay and Fade Duration, used for decals that fade out over time during play; set both to 0 to make a decal persistent (Unreal Engine documentation: unreal.DecalComponent). It also lists a Fade Screen Size property (Unreal Engine documentation: unreal.DecalComponent).
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:
- Receiving materials pay too. Each DBuffer-receiving material adds shader code, so enable only the Decal Response channels it needs (Unreal Engine documentation: Decal Materials in Unreal Engine).
- Batching. URP decals do not use the SRP Batcher; GPU instancing and texture atlases reduce draw calls and material count (Unity documentation: Decal Renderer Feature).
- Platform limits. Unreal's mobile renderer does not support DBuffer decals (Unreal Engine documentation: Decal Materials in Unreal Engine). URP's DBuffer technique does not support OpenGL or OpenGL ES and needs a depth-normal prepass, so Unity recommends the Screen Space technique for tile-based mobile GPUs (Unity documentation: Decal Renderer Feature reference). Godot's Forward+ renderer shares a limit of 512 "clustered elements" (lights, decals, probes) in view, and its Mobile and Compatibility renderers allow 8 decals per mesh resource (Godot Engine documentation: Using decals).
- No transparent surfaces in URP: "The decal projection does not work on transparent surfaces" (Unity documentation: Decal Renderer Feature). HDRP can draw on transparents with Affects Transparent, at a memory and performance cost (Unity documentation: Decal Projector reference).
#What decals are used for
Decals are a quick way to make a clean tiling or trim surface look lived in. Common uses:
- Leaks and stains under windows, pipes and roof edges, where water would run.
- Cracks, chips and potholes on walls and roads.
- Graffiti, posters, signs and road markings.
- Dirt and grime at the base of walls and in corners.
- Breaking up tiling. Epic lists breaking up repetition among the main uses of decals (Unreal Engine documentation: Decal Materials in Unreal Engine), and Godot notes that decals "can help break up texture repetition in scenes" (Godot Engine documentation: Using decals).
- Gameplay marks such as bullet impacts and scorch marks, faded out and removed over time (Godot Engine documentation: Using decals).
- Small hard-surface details like nuts and bolts on top of geometry (Godot Engine documentation: Using decals); for many of those, mesh decals are often the better tool.
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
- Unreal Engine: set the material domain to Deferred Decal, then place a Decal Actor or drag the material into the level (Unreal Engine documentation: Decal Materials in Unreal Engine; Unreal Engine documentation: Decal Actors in Unreal Engine). Use Shader Complexity to check cost (Unreal Engine documentation: Viewport Modes in Unreal Engine).
- Unity HDRP: create a material with an HDRP decal shader and add a Decal Projector (Unity documentation: Decal Projector reference; Unity documentation: Decal Material Inspector reference).
- Unity URP: add the Decal Renderer Feature to the renderer, then use a Decal Projector with a material using the
Shader Graphs/Decalshader (Unity documentation: Decal Renderer Feature). - Godot 4: add a Decal node and assign textures directly; there is no decal material or custom decal shader (Godot Engine documentation: Using decals).
- Blender: Blender has no projected decal system for games. Artists usually author decal textures in Substance 3D Designer or Painter, ZBrush or Photoshop (80 Level: In-Depth Tutorial: Creating Custom Decals for…), or use mesh decals.
#Further reading and watching
References
- · Decal Materials in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
- · Decal Actors in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
- · Decal Projector reference (HDRP 17) · Unity documentation · docs · accessed 2026-10-21
- · Using decals · Godot Engine documentation (source on GitHub) · docs · accessed 2026-10-21
- · Decal Material Inspector reference (HDRP 17) · Unity documentation · docs · accessed 2026-10-21
- · Decal Renderer Feature reference (Unity 6) · Unity documentation · docs · accessed 2026-10-21
- · Decal technique from Star Citizen · Polycount, 2015 · forum · accessed 2026-10-21
- · Parallax Mapped Bullet Holes · Cowboy Programming (first published in Game Developer magazine, May 2006), 2007 · article · accessed 2026-10-21
- · In-Depth Tutorial: Creating Custom Decals for Games · 80 Level · course · accessed 2026-10-21
- · Decal Projector component reference (Unity 6) · Unity documentation · docs · accessed 2026-10-21
- · unreal.DecalComponent (Python API) · Unreal Engine documentation · docs · accessed 2026-10-21
- · Viewport Modes in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
- · Decal Renderer Feature (URP 17) · Unity documentation · docs · accessed 2026-10-21
- · DOOM (2016) - Graphics Study · adriancourreges.com, 2016 · article · accessed 2026-10-21
- · World Building of Witcher 3 · 80 Level, 2016 · article · accessed 2026-10-21
Also consulted
- · How to Make Worlds Feel Lived-In with UE5 Decals [Tutorial] · YouTube · video · accessed 2026-10-21
Pages that link here
- How to use this handbook Guide
- The game asset pipeline Topic
- Roles in 3D game production Topic
- Modeling software Reference
- Texturing and material software Reference
- Visual hierarchy and readability Topic
- Silhouette Key term
- Hard-surface modeling Topic
- The mid-poly workflow Topic
- Greebles Key term
- Modular kits Topic
- Kitbashing Topic
- Hero assets, props and filler Topic
- Instancing Key term
- Sculpting damage and wear Guide
- UV mapping Topic
- Parallax occlusion mapping Key term
- Texture streaming Key term
- Opacity, masked and translucent materials Key term
- Ways to texture an environment Overview
- Tileable materials Topic
- Procedural materials (node-based) Topic
- Photo-sourced and scanned materials Topic
- Trim sheets Topic
- Texture atlases Topic
- Mesh decals Topic
- Geodecals Key term
- Z-fighting Key term
- Vertex painting and blending Topic
- Breaking up tiling Topic
- Shaders for artists Topic
- Master materials and instances Topic
- Terrain and landscapes Topic
- Heightfield erosion Key term
- Virtual texturing Key term
- Level design and environment art Overview
- Wayfinding Topic
- Environmental storytelling Topic
- Set dressing and art passes Topic
- Worldbuilding for artists Topic
- Overdraw Key term
- Making (and reading) an art breakdown Guide
- Exercise: a modular room Exercise
- Exercise: a trim sheet Exercise
- A 12-month learning roadmap Guide
- Essential talks and videos Reference
- Game art breakdowns: a curated library Reference
Last updated 2026-10-22