Mesh decals
Decals made from real geometry (strips and small planes floating just above a surface) that sample a shared decal atlas; used for panel lines, bolts, vents and labels on hard-surface assets, and how to avoid z-fighting.
A mesh decal is a decal made from real geometry: a thin strip or small plane that sits just above a surface and shows a piece of a shared decal texture. Epic describes mesh decals as a way to use decal material properties "on separate surface geometry" for static and skeletal meshes (Unreal Engine documentation: Using Mesh Decals in Unreal Engine). They are a common technique for panel lines, bolts, vents, warning labels and seams on large hard-surface assets.
They are related to projected decals and of floaters: like floaters they hover above the surface, but instead of being baked down they stay in the final game mesh.
#Why use geometry instead of projection
Projected decals are boxes. They work on flat walls but "shear and distort" when the box is not aligned with the surface (Unreal Engine documentation: Using Mesh Decals in Unreal Engine). A mesh decal has its own UVs, so it can wrap around edges, follow curves and run along spline meshes (Unreal Engine documentation: Using Mesh Decals in Unreal Engine).
Epic lists further advantages over Decal Actors (Unreal Engine documentation: Using Mesh Decals in Unreal Engine):
- Fewer draw calls, because large projected decals need both front- and back-facing draws.
- Often faster, because "flat back facing decals cover 0 pixels".
- Custom UVs for complex mappings, and normal-mapped decals that stretch along splines.
The main reason artists like them is resolution. A strip that shows a 32-pixel-wide slice of a 2048 px atlas can be any length, so a 10 m panel line stays crisp without a unique texture for the whole hull.
#Where the technique came from
The technique became widely discussed among artists through a 2015 Polycount thread titled "Decal technique from Star Citizen". There, Obscura explained that Star Citizen's ships used a mid-poly model with chamfers and custom normals, and that the artists "placed many tiny planes, for every panel line, bolt and stuff" (Polycount: Decal technique from Star Citizen). He added that "the technique was also used in Alien Isolation" (Polycount: Decal technique from Star Citizen). These are forum accounts from artists rather than official studio breakdowns, so treat the details as informed descriptions.
Later in the thread Obscura summed up where the method fits: "useful on anything hard surface, that is big enough to make the unique texturing impossible" (Polycount: Decal technique from Star Citizen). The approach combines a mid-poly base, weighted (custom) normals, tileable materials and a decal atlas instead of one large baked unique texture.
#Decal atlases
A decal atlas (or decal sheet) is one texture set holding many decals: panel-line strips, bolts, vents, grilles, labels. It works like a trim sheet for details. Every mesh decal on an asset, or across a whole set of assets, can then share one material, which keeps draw calls down. See also texture atlases.
A typical decal atlas contains:
- Normal map: the shape of the seams and bolts.
- Alpha or opacity mask: where the decal shows.
- Roughness, AO, base colour as needed, often channel packed; see channel packing.
DECALmachine's FAQ lists its decal maps as "normal, height, AO, curvature, mask and often subset mask" (machin3.io: DECALmachine FAQ).
#Z-fighting and offsets
Two surfaces at the same depth fight over which one is drawn, and you see flickering stripes. This is z-fighting. A mesh decal must sit in front of its surface to avoid it.
Epic says decal geometry "needs only to stay in front of the surface you want to affect" and should "hug" it, but needn't match exactly, because a small depth bias compensates (Unreal Engine documentation: Using Mesh Decals in Unreal Engine). Problems appear with LODs and at long distances, where depth precision drops (Unreal Engine documentation: Using Mesh Decals in Unreal Engine). Their fixes are to edit the mesh or push the decal out with World Position Offset in the material; in their example, a small offset moved the decal far enough out to stop intersecting (Unreal Engine documentation: Using Mesh Decals in Unreal Engine).
Artists in the Polycount thread agree that the offset should be tiny. Obscura: "You need a little offset, yes, but not too much, cause then it would visibly offset, and 'swim'" (Polycount: Decal technique from Star Citizen). blankslatejoe pushed "all the decals out by a super tiny amount, to help with zfighting" (Polycount: Decal technique from Star Citizen). bac9-flcl suggested a shader with depth offset as an alternative to modeling the offset in (Polycount: Decal technique from Star Citizen).
#Masked or translucent
A mesh decal needs some way to hide everything outside the decal shape.
- Masked (alpha test). Each pixel is either fully shown or discarded. Cheap, sorts correctly, but gives hard, aliased edges. In the Polycount thread, Obscura said that when Star Citizen-style decals needed transparency, "its always a masked blend (alpha test), so its fairly cheap" (Polycount: Decal technique from Star Citizen).
- Translucent / deferred decal blending. Soft edges and partial blending. Unreal's mesh decals use the deferred decal path: they update the GBuffer or DBuffer after opaque geometry, do not write depth, and unlike masked materials "you get the soft transitions in the Material" (Unreal Engine documentation: Using Mesh Decals in Unreal Engine). They do not cast shadows (Unreal Engine documentation: Using Mesh Decals in Unreal Engine).
- G-buffer overwrite. marks described decals that used an 8-bit alpha mask to overwrite the G-buffer value for each pixel, which radiancef0rge called "usually how its dealt with" (Polycount: Decal technique from Star Citizen).
Normal-only decals avoid most colour blending problems: the panel line changes the normal and maybe roughness, and keeps the colour of the paint underneath. See normal-only decals.
Unreal's mesh decal page lists some limitations to plan around: no artist-specified sort order, missing shader overdraw visualisation, and instruction counts in the Material Editor that are wrong for decals (Unreal Engine documentation: Using Mesh Decals in Unreal Engine).
#Hard-surface panel lines in practice
A typical workflow for a sci-fi hull, crate or vehicle:
- Model a clean mid-poly or low-poly base with bevels and weighted (custom) normals.
- Texture it with a tiling material or trims.
- Add strips for panel lines and small quads for bolts, vents and labels, mapped to a decal atlas.
- Offset them slightly and give them a decal material.
- Add vertex colour or projected decals for wear and dirt on top.
On Polycount, igi asked whether decals were still needed on chamfered edges once weighted normals handle the shading; Prime8 answered that decals help when the edge should carry its own wear or damage detail (Polycount: Decal technique from Star Citizen).
#DECALmachine
DECALmachine by MACHIN3 is the best-known mesh decal tool for Blender. It applies decals in "a very non-committal, non-destructive, UV-less way" as an alternative to traditional hard-surface texturing (machin3.io: DECALmachine). The current site lists support for Blender 4.3 to 5.2 (machin3.io: DECALmachine); it is a commercial add-on, first sold on Gumroad in 2017 (80 Level: DECALmachine: Work with Decals in Blender).
Main features, according to MACHIN3:
- Decal types: Panel, Info and Trim decals are named on the site, which refers to "all four Decal types" (machin3.io: DECALmachine).
- Placement: decals can be projected or shrinkwrapped onto curved surfaces, and panel strips can be "sliced boolean-style" (machin3.io: DECALmachine documentation).
- Export: Decal Atlases "to efficiently export to deferred rendering engines like Unity HDRP, Unreal Engine"; Trim Sheets for forward renderers such as Unity URP; or baking decals into the parent object's UV space (machin3.io: DECALmachine).
The FAQ also lists limits. Mesh decals in Blender are opaque, and "there is no mixing, because Blender uses forward shading/rendering" (machin3.io: DECALmachine FAQ). MACHIN3 also advises against true displacement on decals: "It would intersect with the base mesh the decals are floating above" (machin3.io: DECALmachine FAQ).
#In different tools
- Unreal Engine: a static mesh with a material in the Deferred Decal domain renders as a mesh decal (Unreal Engine documentation: Using Mesh Decals in Unreal Engine). Offset with World Position Offset if needed (Unreal Engine documentation: Using Mesh Decals in Unreal Engine).
- Unity HDRP / URP: DECALmachine targets HDRP via decal atlases and URP via trim sheets (machin3.io: DECALmachine). Masked materials on floating geometry work in any pipeline.
- Blender: DECALmachine for authoring; Blender itself renders decals as opaque geometry (machin3.io: DECALmachine FAQ).
- Any engine: you can always build mesh decals by hand: duplicate faces, offset them slightly, UV them to an atlas, and give them a masked material.
#Further reading and watching
References
- · Using Mesh Decals in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-21
- · Decal technique from Star Citizen (page 1) · Polycount, 2015 · forum · accessed 2026-10-21
- · Decal technique from Star Citizen (page 4) · Polycount, 2016 · forum · accessed 2026-10-21
- · Building Environments for Uncharted: The Lost Legacy · 80 Level, 2017 · article · accessed 2026-10-21
- · DECALmachine FAQ · machin3.io · docs · accessed 2026-10-21
- · DECALmachine · machin3.io · tool · accessed 2026-10-21
- · DECALmachine: Work with Decals in Blender · 80 Level, 2017 · article · accessed 2026-10-21
- · DECALmachine documentation · machin3.io · docs · accessed 2026-10-21
- · Everything I learnt about Environment Art (blog series) · ArtStation blog · article · accessed 2026-10-21
Also consulted
- · DECALmachine 2.0 - Export/Atlas Workflow (preview) · YouTube · video · accessed 2026-10-21
Pages that link here
- Modeling software Reference
- Hard-surface modeling Topic
- Weighted (custom) normals Topic
- The mid-poly workflow Topic
- Floaters Key term
- Greebles Key term
- Sculpting damage and wear Guide
- Ways to texture an environment Overview
- Texture atlases Topic
- Decals Topic
- Geodecals Key term
- Z-fighting Key term
- Breaking up tiling Topic
- Set dressing and art passes Topic
Last updated 2026-10-22