Static Decals. The system allows you to create static decals in editore during scene development. Create a decal just like prefab and then use it repeatedly. Convenient positioning system allows for one click to put a decal on specified point. Using standard tools of Unity, you can quickly and easily configure other options: decal size, rotation, etc. After creating a set of decals system allows to combine all the decals of a given type at a specified object in single mesh, this feature allows you to optimize the draw calls for maximum performance. Combining can also perform automatically before starting the level, you need only call one function in a library.

Static Skinned Decals. You can create not only simple but also skinned decals. You can quickly and simply give each of your characters necessary uniqueness simply by adding to it a few decals such as stains, blood, patches on clothing and scratches on the body and much more.

Dynamic Decals. Dynamic decals are decals that are created in runtime, such às bullet holes, blood splatters, footprints. Our system allows you to create all these elements without which does not exist any serious project. For each dynamic decal is only necessary to call two functions from the library. The first creates a mesh decals, the second directly creates an object decals. The system monitors all created dynamic decals and controls their behaviour. Combining, randomization, and work with the texture atlas, destroing , fading. Combining the decals in runtime will reduce the draw calls to a minimum and to obtain high performance.

Dynamic Skinned Decals. Dynamic decals also can be skinned. You can easily create blood splatters or damage on your characters in runtime. The system can control the maximum number of decals on skinned object and quality of the skinning, 1,2,4 bones.

(NEW) Fluid Decals. You can create fluid decals like blood that flows down the walls.

Advanced. Often we need to create a decal on the surface that has bump mapping shader. If Decal has bump mapping shader by itself than we need for blending between the surface normal map and normal map of decals. Our system allows you to do this while preserving the original UV coords and tangential space of the source surface in decal mesh. To achieve the effect we provide several shaders which is a modification of Unity bump shader. All you need is either to use these shaders or write you own using our shader as an example , this is not so difficult.

Can't believe I paid that other guy who showcased his promising decal project here. It had nothing, but he promised a lot of features so I wanted to support further developement. Then he ran away with my dollar.

Ohh well, lesson learned. At least you have the features already.

Have you stresstested it? I have a rough decal framework in my game and I was fiddling around with the combinechildren script so I could have hundreds of thousands of decals on screen at the same time without any impact on performance. The only problem which I wasn't able to fix was that memory usage increased steadily with every new decal and even if you destroyed them and every reference to them the memory was still being used. The only way to free it was to restart Unity.

Can't believe I paid that other guy who showcased his promising decal project here. It had nothing, but he promised a lot of features so I wanted to support further developement. Then he ran away with my dollar.

Ohh well, lesson learned. At least you have the features already.

Have you stresstested it? I have a rough decal framework in my game and I was fiddling around with the combinechildren script so I could have hundreds of thousands of decals on screen at the same time without any impact on performance. The only problem which I wasn't able to fix was that memory usage increased steadily with every new decal and even if you destroyed them and every reference to them the memory was still being used. The only way to free it was to restart Unity.

Click to expand...

In our tool you have no performance lost and have no memory lost. All Decals and all new decal meshes properly destroyed in it's own time. Take a look at profiler in runtime and you will see that.
Decals testet on all platforms, already.

This system work fine only with MeshColliders or, with any colliders types ?

Click to expand...

One Click Position system works ONLY if object has collider (Mesh or any another type of colliders). Because we have no choise, and another way to get point in world space. Decal meshes generation based on any kind of mesh, usual mesh or skinned mesh. In Unity 3.0 you also will have access to Tree decals and Cloth decals.
Also in v 1.1 we will make support of "bloody (flow)" Decals

I just started working on something like this. Damn I hate when someone beats me to it

But very nice project. Unlike most of so-called "decal systems" around these forums.

Mind if I ask how did you handle mesh clipping, for decal mesh generation? Isn't it performance intensive? Did you use some kind of spatial partitioning on the mesh?

Click to expand...

You just take mesh and cut it with six planes + a lot of different mathematics That is all

Click to expand...

That's how I did it. However if you have a mesh with a lot of polygons, and you need a lot of decals generated fast, it can seriously slow down your scene.

For example I tried culling(not even clipping) a mesh with 2500 polygons, every frame. Frame rate dropped from 2500 to around a 100-150. That's with an empty scene (only the 2.5k mesh loaded).

Now if you had a scene with 500-1000 draw calls and bunch of scripts where the CPU was already plenty busy, and multiple players running around shooting things with automatic rifles(multiple rounds per second), will there be a noticeable slowdown?

I just started working on something like this. Damn I hate when someone beats me to it

But very nice project. Unlike most of so-called "decal systems" around these forums.

Mind if I ask how did you handle mesh clipping, for decal mesh generation? Isn't it performance intensive? Did you use some kind of spatial partitioning on the mesh?

Click to expand...

You just take mesh and cut it with six planes + a lot of different mathematics That is all

Click to expand...

That's how I did it. However if you have a mesh with a lot of polygons, and you need a lot of decals generated fast, it can seriously slow down your scene.

For example I tried culling(not even clipping) a mesh with 2500 polygons, every frame. Frame rate dropped from 2500 to around a 100-150. That's with an empty scene (only the 2.5k mesh loaded).

Now if you had a scene with 500-1000 draw calls and bunch of scripts where the CPU was already plenty busy, and multiple players running around shooting things with automatic rifles(multiple rounds per second), will there be a noticeable slowdown?

Click to expand...

Just calculate how many times bullets will be hit something like this torus per frame!

just finished my exams and wanted to try this plugin. I installed an managed to place a decal, in particular trying to get dirt a circuit with squid marcs etc. Just a test.

Questions....

Is there any way for blending the decal over the asphalt controlling its opacity? I found no slider to do this, but I think that would be handy. Also as you already are able to fade de decals, sure you've this "technology" already implemented. Would be nice to have control over this like in photoshop.

Also, to make a decal such as a road crackle look like in the road I'll be in the need of an alpha map. So, the diffuse texture needs to come with an alpha too right?. My initial idea was to load the diffuse and the alpha separately, so that the alpha in some cases could be simply a noise texture so that the dirt/leaves... distribute "randomly" over the asphalt.

Finally a question about the render priority. I saw a parameter about "offset" or simialr, wich seemed the ofse the decal has over the "ground". Is that??
THere is no render priority control in Unity? I mean, two shapes cant share the same space and only on of then be rendered, being its render controled by a render priority?? (z fighting) .

just finished my exams and wanted to try this plugin. I installed an managed to place a decal, in particular trying to get dirt a circuit with squid marcs etc. Just a test.

Questions....

Is there any way for blending the decal over the asphalt controlling its opacity? I found no slider to do this, but I think that would be handy. Also as you already are able to fade de decals, sure you've this "technology" already implemented. Would be nice to have control over this like in photoshop.

Also, to make a decal such as a road crackle look like in the road I'll be in the need of an alpha map. So, the diffuse texture needs to come with an alpha too right?. My initial idea was to load the diffuse and the alpha separately, so that the alpha in some cases could be simply a noise texture so that the dirt/leaves... distribute "randomly" over the asphalt.

Finally a question about the render priority. I saw a parameter about "offset" or simialr, wich seemed the ofse the decal has over the "ground". Is that??
THere is no render priority control in Unity? I mean, two shapes cant share the same space and only on of then be rendered, being its render controled by a render priority?? (z fighting) .

Click to expand...

Decals are the same as usual objects. And then what you are saying is adjusted through the material decals. You must use your shaders or our shaders or write your shaders using our as an example. Alpha blending and transparency is not the decals problem it is problem of decals material

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.