Blood in runtime

I want to leave a lot of persistent blood marks in the level when I killing the enemy.
I tried to use deffered decals it looks very nice, but FPS drops quite fast on a lower end GPUs.

Is there more efiicient way to cover everything in blood during the gameplay(runtime).

I thought maybe I can just use a Plane geometry to drop the blood on the surface (landscape or something else)
I can foresee that the planes will overlap each other and it can lead to pixel overdraw
as well as having a lot of geometry in the scene can also lead to some performance penalty (maybe instancing can solve the later) so the sub question is : is there a way to merge geometry (planes) to 1 bigger object ?
for example if I have lets say 10 planes relatively* close to each other I would like to merge them in to 1 object.

Thanks in advance :slight_smile:


Hey there Roma,

Something that I’ve done in place of using projected decals or mesh decals is building a material that lerps in separate material attributes based on distance field masks. I did this to mask in a dirt texture on a grassy material for a trail carving mechanic, here’s a link to a video tutorial that I made that demonstrates the basic principles, maybe this can work to mask in some blood with a blood spatter normal and different roughness values for your game.

Good luck!

Hello hippowombat,
Thanks for your suggestions! This is very interesting approach (I was looking how can I change the landscape textures but all the answers I saw were negative seems Like I didnt know what to look for exactly).
I think it can partially help optimizing the game - I thinking about a combination of your method and a decals (or some planes will have to figure that out).

Thinking of tracing the scene : if the blood should lay on material only - then I will use your method else if it hits some actors/folliage I will project a decal -
it looks promising to decrease a decal count and maintain olayable FPS.

I will give it a try next week.
Thanks! Roma.

I came to conclusion that decals are actually works better and are more flexible,
to surroass the performance issues I decided to merge overlapping decals in to a bigger ONE decal
and whoala ! It works like a charm, with little performance impact.

I made a plugin for this