RenderTexture Particles effect

I am trying to create an effect of pouring and spreading fluid. Nothing too fancy. I tried using a Render Texture with some particles. The particles have a white gradient circle that I use for normal map and it grows over time. Here is a video of how it looks now.
spill

Here is the particle sprite I used:

As you can see the effect looks alright at the beginning when the particle is instantiated and the edge is blurred, but when multiple particles overlap the edge becomes flat and the normals are flat as well.

I would like to find a solution that would also work to see the effect if the particles are instantiated over other particles. Meaning if you pour fluid over other fluid.
One idea I had was to blur the render texture so that the edges would be blurred, but I don’t think it would work properly.
I am open to any suggestions, even a whole other approach to creating the effect.

Update: I actually found a way to pour over already poured fluid. Simply adjusting the color over lifetime of the particle. From a pure white to a gray. Meaning the normals of the new particles are stronger than the ones of the old particles. But the outter edges are still flat :frowning:
test

4 Likes

I have very little to contribute here, actually I think the effect looks quite nice already :smiley:
The edge does not look entirely flat, I can see a highlight on the bevel, but If you want more height from it would be that something you could achieve in the shader that constructs the normal map from the rendertexture heightmap? Or just increase the width of the gradient of the source particle texture?

Another approach might be to not render a white circle but a texture of the normals of a sphere into the rendertexture so you immediately get a normal map in there which you can control better but I am not sure how to properly blend that.

Actually my first approach was a normal map for the texture of the particles:


But yeah, I couldn’t think of a method of how to blend all the textures.

I tried with different widths of the gradient, but the real spilled fluid has a pretty small bevel and I would like to keep that.