Engine deferred decals vs individual models with 4 vertex “planes” with texture.
If for example in a room, i have 100 decals in the calls, roof, floor… and some decals with superposition of others.
What is the performance using the default decals versus to use 3D plane models with material (using the 3D models as Decals)?
Planes would be cheaper in general. I’m not sure, but it looks like the decal is projecting itself onto the mesh, meaning it would have to redraw the mesh usually. Now since they are called Deferred Decals, they might have some internal optimization to prevent re-rendering the entire mesh, but whatever it is, my guess is it wil never be cheaper than a simple plane.
The mesh complexity of the objects affected by the decal is not affecting the performance. The decal performance depends on the shader complexity and the shader box size on the screen.
We can further improve the per decal performance. Ideally the bounding box of the decal is small to get better per pixel performance. This can be done manually. An automated method is possible but a good designer can also adjust the placement to improve performance further.
Current limitations
We currently only support deferred decals and they only work on static objects.
Normal blending is currently not wrapping around the object.
Mip map computation is not done yet so you might see 2x2 block artifacts on object borders.
Streaming is not yet hooked up so make sure the texture is not streamed.
Masking decals (not affecting other object) is not fully implemented.