Anatta336 / driven-decals

A mesh-based PBR decal system for Unity's universal render pipeline.
MIT License
580 stars 75 forks source link
decal unity-editor unity3d

Driven Decals

A mesh-based PBR decal system for Unity. For use with the Universal Render Pipeline.

These types of decals are good for static things like cracks and graffiti added into the game during level design (or during an initial procedural generation process).

This way of handling decals is bad for things like adding bullet holes when the player shoots. For dynamic decals, you can use the Universal Render Pipeline's decal rendering feature.

I've written a little interactive article about these two types of decal if you would like to know more.

60 second introduction video on using this package.

Status - Last updated 2024-06-09

Note that this package has a "preview" version number. You are of course welcome to use it as you like, but please be aware there are known missing features (for example it doesn't work with animated meshes) and almost has certainly bugs.

These days I work full-time on projects away from Unity, so please don't expect rapid progress.

Example Screenshot

Decals applied to a cylinder, giving the impression that it is made of cracked concrete. One of the cracks reveals a bright abstract pattern beneath the surface.

Key Features

Key Limitations

Changelog

Human-friendly changelog

Getting Started

Requirements

In theory it should work in the LWRP and Unity versions as far back as 2018. But it looks like shader graph really doesn't care about cross-version compatibility. If you need this to work in those earlier versions I may be able to put together something compatible with some extra work.

Installation

  1. Within your project open the Package Manager from WindowPackage Manager
  2. Click the + icon at the top-left of the window and select "Add package from git URL..."
  3. Paste in https://github.com/Anatta336/driven-decals.git and click "Add"
  4. Wait a minute. It looks a lot like nothing is happening, but Unity is busy thinking about packages.
  5. When installed you'll see "Driven Decals" listed in the window.

Or you can manually modify your project's manifest.json file in the Packages folder to include:

{
  "dependencies": {
    "com.samdriver.driven-decals": "https://github.com/Anatta336/driven-decals.git",
    ...
  },
}

Documentation

Extensive documentation including step-by-step instructions to get you started.

Authors

Sam Driver - Website

Special Thanks

Kenny5 - Made everything work nicely with the Unity Package Manager.

Licence

The source code of this project and associated documentation is licensed under the MIT licence.

The included example assets are licensed under the Attribution 4.0 International (CC BY 4.0) licence.

These licences mean you already have permission to use this in whatever project you like, including commercial releases. They place no obligation on you to release your source code. If you release something that makes use of this decal system a small acknowledgement in the credits would be appreciated, but is not required.