Decals?

Hello. I’ve been using Unity for almost a year and I’ve been recently trying to add decals to surfaces. I searched the forum and found multiple different methods, but none of them are as effective as I would like.

-Projectors work well enough but they render each object they project on again, which is a performance monstrosity if I want to make bullet holes, for example.

-I found a thread where somebody actually placed pixels on the texture of the objecty they wanted decals on, but you cannot reuse the texture. An alternate method is to use a secondary UV set like a lightmap, but lightmaps are too low-res to get any real detail. Not to mention, this method seems impractical.

-By far the best method is making a plane and using the cutout shader, and displacing the plane slightly. However, this doesn’t work if you want to put a decal on an object that isn’t round.

I have seen some examples of decals in Unity that I do not think use any of these methods, but I cannot figure out how they did it. Perhaps someone can help me out here? Decals are pretty important for my game and the help/advise would be appreciated.

This might sound obvious given that you’ve been using Unity for almost a year, but have you tried using the built in decal material? If so and it didn’t work, maybe I’m not fully understanding what it is you’re trying to do.

The optimal solution for decals would be something along the projector that extracts the required mesh to paint onto and just repaints that.

But if you design your levels with decals in mind, you should actually be able to reduce the amount of redrawn geometry quite a bit.

Also redrawing geometry isn’t exactly a problem, the problem is the material on the geometry.