XDECAL™ ****User-guide
Chapters
Decal Assets & Texture Library
Table of contents
In various software, decals are usually implemented using one of the following approaches:
As regular objects: decals are full-fledged separate objects which are just placed over the scene geometry with some small offset
As part of a shader: each decal effectively serves as a separate layer within the material, taking its texture coordinates from a corresponding projector object and overriding/modifying the previous nodes' outputs where the decal is opaque
As a post-processing effect: decals essentially function as image projectors which modify various channels during the frame compositing, after the scene's solid geometry has been rendered. This is only possible in game engines which use deferred rasterization rendering, and is generally not applicable to Blender
In the context of Blender specifically, the first two methods have the following advantages and disadvantages:
Aspect | Object | Shader | |
---|---|---|---|
Materials can be shared/reused | ✔️ | ❌ | |
Easy to add/remove (especially if decals cover multiple objects) | ✔️ | ❌ | |
Can scale to a large number of decals on the same object | ✔️ | ❌ | |
Performance cost is paid only where decals are located (rather than the entire object surface) | ✔️ | ❌ | |
Can define the ordering of decals | ❌ | ✔️ | |
Can cut holes/make dents in objects (by overriding alpha or displacement) | ❌ | ✔️ | |
Can be easily baked into a texture | ❌ | ✔️ | |
No extra geometry | ❌ | ✔️ |
<aside> 🚧
This addon takes the object-based approach, with the core aspects of decal behavior being implemented via geometry nodes
</aside>
This appears to be due to anti-aliasing, and Blender's GPU module currently provides no way to turn it off from scripts
*WARN (bke.anim_sys): source/blender/blenkernel/intern/anim_sys.c:4246 BKE_animsys_eval_driver: invalid driver*
The reason for this error is not clear, but so far it didn't seem to lead to any other negative consequences other than that warning in the console)
If a decal is projected on multiple parts/objects, keep in mind that it would not move with them all (since it can only be parented to one object)
The gizmo palette (in 3D view) might not always catch the input events, so, sometimes, upon right-clicking, you might get Blender’s native context menu. If you repeat the action, you should then get the 3D palette menu
Even if decals’ visible graphics are not overlapping each other, sometimes their projected meshes would, which could prevent you from selecting the decal you want. You can adjust the decal range and projection depth (as well as enable the Intersect option) to minimize such interference
Blender’s copy/pasting of objects (Ctrl+C / Ctrl+V) might not work correctly for objects with Geometry Nodes. An example of such side-effect is that the copied decal gets displayed with texture not clipped by the UV range. You can work around this specific glitch by toggling the UV Map option on and off in the Decal Popup, but in general it’s best to avoid copy-pasting decals until Blender devs fix this issue (it’s less error-prone to duplicate decals instead).
© 2025 MOTH3R ® All Rights Reserved