[Released] Rainy - Rain Collision and Screen Space Wetness System

will it be possible to give snow actual volume?

That is the plan, since the system is already rendering collisions for rain, we can use the same method for the snow displacement, and of course the snowfall.
One thing i still have to think about is how the snow gets rendered best.
For real volumetric snow (displaced) the best solution that comes into my mind is rendering the surfaces with tessellation.

1 Like

How it’s going? Any updates?

EDIT: ok, I managed to decouple VFX from collision renderer which is now static and covers the whole scene. Easy performance save. If you are looking to do the same, you just need to make couple adjustments in VFX graph to start comparing raindrop position and collision data in world space instead of just local space of the whole prefab.

1 Like

If anybody is looking for MASSIVE optimization of the wetness pass - remove anisotropic filtering from 3 textures of rain drops used in this shader. The shader went from 6 ms to 1 ms for me on GTX 1060.

Bonus: Max is using noise nodes in RainCollision subgraph. Replace this with basic perlin noise texture for an extra 0.5 ms optimization.

1 Like

@MaxWitsch Collision pass doesn’t include terrain if it’s set to Drawn Instanced (which everybody is going to use).
It is a known issue apparently. Any idea how to work around that?

Hello. Will there be optimization for new versions of Unity 2023?

Good call!
Not yet tbh. It probably would be the best to write a custom shader just for the terrain.
I will investigate further and maby I’ll find a way. Thanks for telling me.

1 Like

Yes, as @Genebris kindly pointed out to me, I can still optimize a lot.

Please update your asset.

Hi, I purchased Rainy - HDRP. I’m using Unity version 2023.2.18. When I import it and open the “DEMO” scene, I find rendering errors when using transparent materials. How can I solve this issue? Thank you!



1 Like

Has anyone managed to update Rainy to work properly in Unity 6.2?

Works well for me and I didn’t do anything to support it. What problem do you have?

A BatchDrawCommand is using the pass “Collision” from the shader “Hidden/Rainy/Collision” which does not define a DOTS_INSTANCING_ON variant. This is not supported when rendering with a BatchRendererGroup or anything based on it like GPU Resident Drawer or Entities Graphics.
MaterialID: 68 (“road material”), MeshID: 88 (“road_0001_2_2”), BatchID: 1.

But perhaps this is an incompatibility with other plugins or some Unity settings?

I bet you can recreate this Rainy/Collision shader in shader graph and it will work.
Strange that I didn’t have this problem. I’ve tried gpu resident drawer and turned it off since it seems useless and turns off lod crossfade.