RaindropFX - Realistic Camera Lens Rain Effect

RaindropFX Pro : Asset Store Link | Lite Version : Asset Store Link | Online Document : Documentation

Easy to use realistic camera lens raindrop animation post process effects.

RaindropFX Pro is updated to Version 2.00
RaindropFX Pro 2.0 for HDRP is released! If you have purchased standard pipe version (2.0), you can send me a email with your purchase number to get HDRP version for free!

Added

  • Radial wind;
  • Tint color for droplets;
  • Accurate foreground droplet blur;
  • Stable object space version;
  • Better visual quality of object space version;
  • Batches are reduced by 5 from the previous version when there are no more droplets in the scene.

Fixed

  • Error with null raindrop texture;
  • FPS dropping down even when there are no drops on screen;
  • Enabling HDR option of camera causes an error in object space version;
  • Object space version is now compatible with AURA2;

Video

ScreenShots


![](https://github.com/RIPmr/document/raw/master/docs/_pics/RFXP_150/Screenshots/ScreenShot (12).png)
![](https://github.com/RIPmr/document/raw/master/docs/_pics/RFXP_150/Screenshots/ScreenShot (1).png)

Please use this thread if you have any questions, comments, or requests for new features, I’ll be happy to help.
Hope you’ll like it :slight_smile:

2 Likes

SRP has same features with HDRP?

Hi!
RaindropFX PRO is integrated with Unity’s Post Processing Stack (V2), so you can use RaindropFX PRO with same features in everywhere you can use Post Processing Stack (V2). You can try Post Processing Stack (V2) with your SRP(HDRP/LWRP/custom) first, if it works, RaindropFX PRO will works, too.
Lite version (RaindropFX 0.5.0) does not support SRP (HDRP/LWRP/custom), it only support Deferred and Forward rendering and has fewer features (screen fog, wind turbulence …), but it can work without Unity’s Post Processing Stack (V2), and can work with older versions (5.3.4 or higher) Unity.

I am thinking about buying the lite version but does it also support waterdrops without a physics/fall /wind effect. so only the drops? thx :slight_smile:

Hi!
There are two ways to achieve the desired results:

  1. Set the magnitude of gravity and wind to 0.
  2. Drops are divided into two types: static and dynamic. You can set the maximum number of these two kinds of droplets separately, so you can just set the number of dynamic droplets to 0, so that only static droplets can be generated in random positions on the screen.
1 Like

Hey. Did you tried to pipe the rendertarget of the drops to an car paint shader or an glas shader? Could be a nice effect.

1 Like

Hi!
Thank you for your suggestions! Actually I’ve already finished a object space version plugin, use this version you can add RaindropFX effect to the surface of your 3D object with correct physical interaction, and here’s the preview:

https://www.youtube.com/watch?v=c_OPIENqn6s

But there’s still a lot of limitations such as:
1.Unity limits the maximum number of collider vertices to 255, so we can’t apply the effect to complex models at present;
2.In order to get the correct physical interaction, we need to do a lot of pre-calculations before running the game.

So it’s not easy to use at present. I’m still trying to breaking these limitations, but maybe I’ll release a non-physical exact version first, so we don’t need to consider the above limitations.

2 Likes

wow great feature but…

this is insane. how many scripts, textures, materials and shaders are there? :hushed:

lets say i want to use this on windshield for a vehicle (with enough polys), how much process power does this need for that? (for dynamic rain drops in medium & heavy rain)

This is a developing version, in order to achieve physical accuracy, we need to pre-calculate a large number of physical information of the model surface and store them to look up tables, so as to achieve real-time simulation. In release version I will make things as simple as possible, maybe just drag and drop a script to your object, and every thing is OK.
As for simulation efficiency, if physical accuracy is not needed (droplets are directly generated in the random positions in the UV space and will not be converted into 3D droplets), simulation efficiency is independent of the number of model faces, only the number of droplets will have an impact on simulation efficiency. In the presence of 10,000 static droplets and 25 dynamic droplets, the frame rate is generally 350~400 FPS (i5-8400 CPU + GTX1050 GPU); But if physical accuracy is required (droplets are generated from a 3D particle system and are converted to 2D droplets in the UV space after collision with the surface of object. When they flow through the boundary of the object, they are converted back to 3D droplets), the increasement of model faces will lead to a huge reduction in simulation efficiency.

3 Likes

@zhongtianhu
When I use it in the editor in play mode everything works fine. However, when I create a build and start it, the whole scene isn’t visible anymore (Only Canvas objects are visible). What could be the problem?

Hey. Do you have an ETA when we could try the ibject space version?

Hi!
I think here is the solution for your problem:
1.The problem is mainly caused by the ‘Shader.Find’ API by Unity, custom shaders will not be included into the player build if nothing references it.
2.So first you can try to go to ‘ProjectSettings->Graphics’ in your Unity editor then add all the 5 shaders of RaindropFX (located at : RaindropFXPro/Shaders/HDRP) to ‘always included shaders’, then rebuild your game and try it again.
3.If you try to build an apk for Android platform, you can try to do the following:

  1. File → Build Settings
  2. Click “Player Settings”
  3. Navigate to the Android tab
  4. Unfold the “Other Settings” menu
  5. Uncheck “Auto Graphics API”
  6. Remove OpenGLES2 and Vulkan graphics API’s
  7. Set the Minimum API Level to be greater than Android 4.3.
    Hope it can help you :slight_smile:

5060723--497186--problem_01.png
5060723--497189--problem_02.jpg

Hi!
I’ll upload a preview version in the next month. But I don’t have time for rigorous testing of this version now, so it may not be stable. If you already use RaindropFX in a formal project, upgrade carefully.

Updates include:
· Non-physical accurate version of the object space version solver;
· Completely refactored raindrop solver core;
· Batch image renderer, which can be used to render droplet sequences onto a set of user-defined input image sequence;
· Online document.
5060741--497198--图片1.png

1 Like

That sounds great.
Mark the object space version as beta.
I am happy to support you with all kind of tests.

Your object space version will be an addition for this one i am working on.
This one is more for wheel interaction with wet ground.
However i tried an whiper here to. See floor cylinder.)

https://www.youtube.com/watch?v=8w1l9jhFKUA

Hi!
It’s very kind of you to help me do the test! If you find any problems, you can post them here directly.

Your test video looks great! The current version of RaindropFX to be released is a non-physically accurate version (completely based on UV space), when using this version, you need to pay attention to the UV of your wheel model (which will affect the flow direction of water droplets). I will elaborate on it later in the documentation.

Hi. That will be fun.
I would like to combine your screenspace version the with the clearcoat of my carpaint and the windscreen glas.
All exterior surfaces have clean uv s.
The most fun will be the optimisation for larger surfaces.
But there will be solutions.)

I have to methods in mind for allowing your simulated object space feature for larger scale. eg. complete car.

  1. have a look on the lod feature from crest ocean
    https://github.com/crest-ocean/crest/blob/master/USERGUIDE.md
  2. more fancy. doing everything with vfx graph and collide with sdf s generated from geometry.

Hi!
Thanks for your suggestions! That sounds interesting to add some LOD feature to RaindropFX, I’ll try it.
As for SDF, does it means to convert the model into voxels and then carry out collision detection? However, in this way, it may be difficult for us to get the UV coordinates of the model corresponding to the collision points, and for the objects with mesh animation, the voxelization consumption per frame will be relatively large.

I am just looking videos…could be nice to add a couple of things to be able to use it with car windshield/ wipers

Option to select an axis/point for wind split effect, so drops moves in a realistic way.

Option to clean window with a wiper, record with an auxiliar camera the movement of the wiper, and store in a texture when the wiper object writes to the Z, setting a value to 0 and increase the value to 1 with the time…
Use this auxiliar texture to filter effect, and clean it.

I was trying to implement something like this, but i am busy with many others things :slight_smile:

Hi!
Thanks for your suggestions! It’s a great idea! I’ll add it to my roadmap.