Decals are usually “projected” to even different angled surfaces.
If something moves into the projection path, the decal gets also projected on it.
I dont want this, rather “bake” or fix the result of the decal at runtime.
This should also improve the performace, as the decal is not “projecting” all the time.
So there might be a way to do this but I am unaware of a way to “bake” decals. What you CAN do is have the thing that moves set to “Receive Decals” → false. It should be in the details window. So for instance, on a character, it would be in the details panel of the skeletal mesh specifically. You would disable this on anything that might accidentally move into the decal space.
I want to say there’s a way to set a decal to only project onto static meshes as well… but I’m not seeing that anywhere in the documentation.
Thanks, but my main reason is to improve the performance by stopping the permanent projection at runtime. If it is not possible right now, then this feature should be added to the Engine, as there are many use-cases for this, e.g. all types of permanent decals like cracks, dirt, surface variations and so on.
From my experience of the years, it is actually much more often required to have a 2D “baked” decal, then a permanent projecting one. The projecting ones are rarely required for only, e.g. light-rays thru stained glass, a slide-projector, or few similar uses where the 3D projection is required.
Baking decals would imbalance the benefits you get from them. In the case of overlapping them on a tileable texture, for instance a brick wall with graffiti you would have to bake the whole wall texture + the decal and merge it into once big texture. You would dramatically increase texture memory usage.
The only way this is feasible would be through virtual texture maps. You can layer in texture samples and mix them with a lower gpu footprint. But in this case it probably wouldn’t be a decal but a static mesh projected into the texture.
Something like this:
But instead of a road you would have your fake decal.
No, you misunderstand. I am not wanting to merge the decal texture on a surface texture, thereby creating a new texture combining these 2. I am speaking of a Decal that you can project on any surface materials and their textures, without changing those. But I want the result of the decal projection to be “baked” /fixed on those spots, without the permanent running projection at runtime.
So the result would rather be something fixed like vertex painted (but without changing any of the existing materials), but as you can vertex paint only with materials, it would be with decals as they go over any existing materials independently.