Skip to content
← Back to Blog 3d-modeling

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

By BitSoul3D5 min read195 views

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.

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

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:

// 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 TypeRecommended Approach
Flat walls / floorsStandard Decal Actor, default settings
Curved/organic meshesEnable Receives Decals on the mesh, reduce Decal box depth to minimize bleed
Character skinUse Stain Decal Blend Mode; disable on skeletal mesh LOD 2+
Transparent surfacesDecals don't project onto translucent materials — bake into base instead
Foliage / two-sided meshesDisable Receives Decals — projection artifacts are common

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

// 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 TypeMax Simultaneous DecalsMax Decal Texture Resolution
Interior environment40–60512×512
Open world (streamed)80–120 (pooled)256×256 (atlas)
Character surface4–8256×256
VFX / gameplay spawnedPool of 32, FIFO evict128×128

Key optimizations:

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.


Need drop-in assets for this workflow? Grab the 94-model Animal Bundle on the BitSoul marketplace and drop them straight into your project.

Tags: animals

Skip the modeling — download it instead

A free BitSoul3D account gets you 2 GLB downloads every month for personal use plus 25 one-time AI Engine credits, no card required. PBR-textured GLB downloads with a full 3D preview before you buy, for Unreal, Unity, Godot or Blender — OBJ and 3D-printable STL come with any purchase or paid plan.

Browse 1,051 models — from $4.99 → or start free (2 downloads a month)