I want my blood decals to stay on the map until I'm done in that zone, which is probably 5 minutes.

The issue is that at the moment, I spawn 1 blood decal at each particle collision, so after killing 30+ enemies there are like 500 game objects for my blood decals.

This feels like a really sub-optimal approach but how else can I achieve this effect? Is there perhaps a way to combine the decals at runtime or some other way?

I am working in 3D.

  • \$\begingroup\$ Are you talking about a 2D or a 3D map? In a 2D map, you could use a procedurally generated texture and just put it over the whole map. In 3D you could do the same, but it gets a whole lot more complicated because you need a separate texture for every surface. \$\endgroup\$
    – Philipp
    Commented Aug 1, 2023 at 16:38
  • \$\begingroup\$ Sorry should have specified, 3d! Do you have any references for that I might be able to look at? \$\endgroup\$
    – Green_qaue
    Commented Aug 1, 2023 at 16:43
  • 2
    \$\begingroup\$ The method used in Splatoon, Tag! The Power of Paint, Portal 2, etc. may be usable here, where you use the lightmap UVs to get a unique parametrization of every surface, and render a "blood coverage" mask into that. It takes some work to style this to look nice, since the coverage mask is usually too low-res to capture fine splat details, and you need to synthesize those in the shader from the overall coverage value. See How can I make a "paint" effect? \$\endgroup\$
    – DMGregory
    Commented Aug 1, 2023 at 18:22


You must log in to answer this question.

Browse other questions tagged .