← Back to Blog 3d-modeling

Decals in Unreal Engine 5: A Complete Guide to Adding Surface Detail to Game-Ready Assets

By BitSoul Team5/12/2026Updated 8/1/20265 min read82 views
Decals in Unreal Engine 5: A Complete Guide to Adding Surface Detail to Game-Ready Assets

Remeshing an asset every time you want to add a scratch, a blood splat, or a spray-paint tag is a workflow killer. Decals solve this in Unreal Engine 5 by projecting a material onto existing geometry at runtime — no UV changes, no mesh edits, no extra draw calls per unique surface. If you're not using them, you're working harder than you need to.

What Are Decals and Why Do They Belong in Your Pipeline?

A decal in UE5 is a deferred material that projects onto scene geometry within a defined box volume. Think of it as a stamp: you position an actor, orient the projection direction, and UE5 handles blending onto whatever geometry the box intersects — a floor, a wall, a character, or all three at once.

This has concrete workflow advantages over baking detail into base textures:

Decals are rendered in the deferred pass after base geometry, so they respect lighting, receive shadows (with Dbuffer decals), and interact correctly with SSR and SSAO.

Setting Up a Decal Material in UE5

In the Content Browser, right-click → Material. Set Material Domain to `Deferred Decal` and Blend Mode to `Translucent`. For physically correct results, set Decal Blend Mode to `DBuffer Translucent Color, Normal, Roughness` — this writes into the DBuffer and persists through base pass, meaning your decal will receive directional lighting and affect roughness on the target surface.

A minimal decal material needs three input connections:

```cpp
// Decal material node setup (pseudo-code / node description)
TextureSampleParameter2D("DecalAlbedo") → Base Color
TextureSampleParameter2D("DecalNormal") → Normal
TextureSampleParameter2D("DecalORM") → Occlusion / Roughness / Metallic
TextureSampleParameter2D("DecalMask").R → Opacity
```

Expose `DecalAlbedo`, `DecalNormal`, and `DecalMask` as Material Parameter Collection entries so you can swap textures per instance via Material Instances without creating new materials. This is the difference between 1 draw call per decal type versus 1 per unique decal.

Setting Up a Decal Material in UE5 — illustrated

Avoid `Translucent` blend mode for DBuffer decals — it bypasses the deferred pass entirely and will not receive lighting correctly. Always verify your Decal Blend Mode matches the DBuffer settings in Project Settings → Rendering → DBuffer Decals (must be enabled).

Projecting Decals onto Complex Geometry

Add a `Decal Actor` to your level (Place Actors panel → search "Decal"), assign your material, then use the arrow gizmo to orient the projection direction — the arrow points in the direction the decal projects. The blue box defines the clipping volume; geometry outside it is unaffected.

For complex curved surfaces:

| Surface Type | Recommended Approach |
|---|---|
| Flat walls / floors | Standard Decal Actor, default settings |
| Curved/organic meshes | Enable Receives Decals on the mesh, reduce Decal box depth to minimize bleed |
| Character skin | Use `Stain` Decal Blend Mode; disable on skeletal mesh LOD 2+ |
| Transparent surfaces | Decals don't project onto translucent materials — bake into base instead |
| Foliage / two-sided meshes | Disable Receives Decals — projection artifacts are common |

For Blueprint-spawned decals (footprints, bullet holes), use `SpawnDecalAtLocation` or `SpawnDecalAttached`:

```cpp
// Blueprint node / C++ equivalent
UGameplayStatics::SpawnDecalAtLocation(
WorldContextObject,
DecalMaterial,
FVector(128.f, 128.f, 128.f), // size
HitLocation,
HitNormal.Rotation(),
LifeSpan // 0 = persistent
);
```

Set a Fade Out Duration on the decal component to prevent accumulation in high-action scenes.

Performance Considerations and Decal Budgeting

Decals are cheap but not free. Each decal issues a draw call during the deferred pass, and overdraw compounds when large decals overlap. Follow this budget framework:

| Scene Type | Max Simultaneous Decals | Max Decal Texture Resolution |
|---|---|---|
| Interior environment | 40–60 | 512×512 |
| Open world (streamed) | 80–120 (pooled) | 256×256 (atlas) |
| Character surface | 4–8 | 256×256 |
| VFX / gameplay spawned | Pool of 32, FIFO evict | 128×128 |

Key optimizations:
- Atlas decal textures into a single 2048×2048 sheet and use UV offsets in material instances. This consolidates draw calls dramatically.
- Cull distance: set `Max Draw Distance` on each decal actor. 1500–2000 units is appropriate for detail decals.
- Sort order: set `Decal Sort Order` to avoid Z-fighting when stacking (e.g., dirt layer = 0, crack = 1, paint = 2).
- Disable Receives Decals on any mesh where it's unnecessary — every eligible mesh participates in the decal pass.

Performance Considerations and Decal Budgeting — illustrated

Profile with UE5's GPU Visualizer (`Ctrl+Shift+,`) — filter by "Decal" in the timing hierarchy. If decal cost exceeds 0.5ms on your target hardware, reduce max simultaneous count or lower texture resolution.

Sourcing Decal-Ready Assets for Your Project

A well-prepared decal system depends on two things: quality decal texture packs and assets flagged to Receives Decals. When purchasing or downloading 3D props, verify the mesh has this property enabled in its Static Mesh settings — many optimized assets disable it by default to save render cost.

The BitSoul marketplace hosts game-ready GLB and FBX assets with known polygon budgets and material slot layouts, making it straightforward to plan your decal projection targets. Look for assets with flat or minimally curved surfaces in high-traffic areas (walls, floors, vehicles) — these yield the cleanest decal projections.

For decal texture content itself, common asset types to look for:

Putting It Together: A Decal-Driven Environment

A fully decal-driven environment workflow looks like this:

  1. Source modular geometry (walls, floors, props) — ensure Receives Decals is on.
  2. Build a decal material library with 4–6 master materials covering dirt, damage, and markings.
  3. Create Material Instances per variant, using texture atlases where possible.
  4. Place persistent decals in the level for fixed storytelling detail.
  5. Set up a Blueprint decal pool for runtime-spawned events.
  6. Profile and tune cull distances and sort order.

The payoff is significant: a single modular wall mesh becomes a canvas for dozens of unique visual states without a single UV or mesh change. That's the kind of workflow efficiency that scales — whether you're shipping solo or on a team.

Explore the full library of game-ready props optimized for decal workflows at BitSoul Marketplace.

Tags: Unreal Engine 5 Decals Game Assets PBR Materials 3D Art Game Development Performance Optimization

Skip the modelling — download it instead

A free BitSoul account gets you 2 game-ready models every month plus 25 AI Engine credits to generate one of your own, no card required. Clean topology, PBR textures, and GLB downloads that drop straight into Unreal, Unity, Godot or Blender — plus OBJ and 3D-printable STL export.

Create a free account → Browse 846 models