XDECAL™ ****User-guide
Chapters
⭐ Home / Support
Getting started
Basics
Popup
Shader Editor
Decal Gizmo
Decal Palette
Default Material Library
Decal Assets & Texture Library
Tutorials
Changelog
Testimonials ◤◢
Additional info
Table of contents
Tutorials
Useful tips
- While the rendering order of decals with alpha-blended materials cannot really be controlled in Eeevee (because Blender renders them in the order of decreasing distance to the camera), you can control the rendering order for decals with dithered (alpha-hashed) materials via geometry displacement.
Making a custom prototype material
Prerequisites
- In the Material Settings panel:
- Make sure the material is using nodes
Blend Mode
= Alpha Blend
or Alpha Hashed
Shadow Mode
= Alpha Hashed
, Alpha Clip
or None
- In the Shader Editor:
- Make sure that the Shader-type nodes are present directly in the material, and not inside some node group(s), at least if the material is intended to be embeddable
- Make sure that the material is used somewhere in the file, or has the Fake User option enabled
Image nodes
- If an image node is supposed to contain the decal image (or its PBR channel) once a decal is instantiated, its label should be empty (for non-PBR materials) or match the name of the corresponding PBR channel / BSDF input. It is also preferable (but not required) to mute these nodes (they will be unmuted upon decal instantiation).
- If the image node is supposed to contain a normalmap automatically generated from a heightmap, its name (not label) should be set to
Height->Normal
- If the image is supposed to contain non-color data and you want to make sure it will be imported as such, add the text
Non-Color
somewhere in the node name
- Image nodes not related to decal images / PBR channels (e.g. which contain some auxiliary textures) should contain the
#
symbol in their label
Texture coordinates
- (Optional) If you want your material to support the same UV manipulation effects as the addon’s built-in material library, use the XDecal.UVW node group as the source of texture coordinates for the image nodes (the node group can be linked/appended from the default.blend file inside the addon folder).
Exposing the parameters
- For each node that contains parameter(s) which you want to be displayed in the decal popup:
- Select the node
- Open the Node Settings dialog (accessible via the
XDECAL™
submenu in the shader editor’s context menu)
- Specify the name under which the node’s UI controls will be grouped (multiple nodes can share the same group name, in which case they will be grouped in the same box). If the group name is empty, the controls will be displayed in the unnamed box at the top
- If multiple nodes belong to the same group and have identically-named sockets, it is advisable to give such nodes a unique ID to avoid ambiguities when copy-pasting material parameters
- Activate the toggles for the buttons / inputs / outputs that you want to be shown in the decal popup
- The ”Buttons” toggle will enable the display of any non-socket UI controls of the node
- The “Inputs” toggle will enable the display of the non-connected input sockets, unless some of them were toggled off individually
- The “Outputs” toggle will enable the display of the connected output sockets, unless some of them were toggled off individually
- Optionally, you can toggle on/off the input/output sockets individually and provide custom labels to be displayed in the decal popup
- When done, click OK
- After you have set up the necessary node parameters, you can check/verify it by opening the decal popup (or, alternatively, by opening the
XDECAL™
tab in the shader editor’s sidebar)
Per-object attributes
- If you want some material properties to be defined per-object (while still using the same material), you would need to use the Attribute nodes in the shader
- Add an Attribute node (e.g. via the Add → Input → Attribute menu)
- Connect its output(s) to the input socket(s) that you want to be object-dependent
- Select the Attribute node if it got deselected
- Open the Attribute: Value dialog (accessible via the
XDECAL™
submenu in the shader editor’s context menu)
- Specify the name of the object property which will be providing the attribute node’s value
- Customize the property parameters (the only parameter that will matter for new decals is the default value, though; the rest can only affect the existing objects)
- When done, click OK
Advanced mixing (for decal embedding)
- When an embedding material is created, the surface material’s BSDF channels will be mixed with the decal material’s BSDF outputs in accordance with the decal’s alpha (but only for the BSDF sockets that were linked in the decal’s material; the sockets that were left unconnected will take their value directly from the surface’s nodes upon embedding)
- If some of the decal’s BSDF outputs are already dependent on alpha, you would likely want to disable the corresponding nodes’ By Alpha option in the Node Settings dialog
- If you intend your material to not simply override the surface material’s properties when embedding a decal, but to modify them in some more elaborate manner, the node that outputs the corresponding BSDF value would need to perform the desired mixing/processing behavior (e.g. by using a Mix node, a Math node, a custom node group, etc.), and one of its inputs would need to be selected as Mix-socket in the Node Settings dialog (upon embedding, this socket will be connected to the corresponding BSDF output of the surface)
Adding your own material library
When you have a .blend file with properly prepared prototype materials, you can add it to the list of material library locations by:
- Clicking on the gear button next to the material selector in the Decal Import settings
- Clicking on the
+
button in the popup
- In the dialog that opens, paste the path to the .blend file with your materials and click OK
- The materials from that file will now appear in the list of prototype materials

Testimonial