Tutorial 3 - Rain Systems

September 27, 2018

Hey everyone, we're finally back after a long 6 months of projects and planning. We've got a lot of exciting things coming soon and we can't wait to share it all with you. For a start, as promised, we have our rain system tutorial now up. We cover how to get rain to fall, splash and run along a surface. We also go over how to add a wetmap to the geometry to emulate the object getting wet. In this blog post we go over the details of the set-up. Enjoy!





If you want to recreate this using the Angel Geometry, you can find it (along with other great scans) here


The only thing that you may have to do, is convert it into a .obj in Blender. That can be done by opening the downloaded file in Blender and going to the export options. If you don't have Blender, you can try out an online .blend to .obj converter. Unfortunately, that didn't work for me. Either way, Blender is free to download and use. It is a great piece of software but does not fit well into most VFX studios' pipelines.


This effect isn't particularly difficult but also isn't a perfect representation of rain. It will work for most uses of the effect but may need to be tweaked.


To start this effect, we create a grid to emit particles from (think of it as a cloud). We then create a popnetwork. In the popnet we emit particles that fall straight down. These are our main raindrops. From these drops we use a combination of pop groups and pop collision behaviours to create various groups that we use to make pop streams. Each stream represents an aspect of rain. One for splashing, one for initiating running, one for running. The visual below shows how Houdini deals with the logic involving various streams being created:


All of these streams are merged together and give the effect of a single particle system.

These particles are all converted to geometry outside of the popnet. The main stream has edited spheres attached to it, the splash group has low-poly spheres attached to it and the run group gets converted to a VDB. 


The wetmap is created by transferring a custom wet attribute that we create from the rain to the surface of the collider. This way, we can use the wet attribute to do things. In the case of this setup, we're darkening the surface and giving wet areas a higher specularity. 


We fit the wet attribute between 0 and 1 because the ramps that we use in the attribute wrangles get driven by our wet attribute. Ramps are ranged between 0 and 1. Thus, we ensure that our driving attribute is fit between this range. When working with the @rough attribute, remember that 1 is completely rough. Therefore, we need to remap the wet attribute by inverting our ramp to ensure that a high wet attribute results in a low roughness. 


We're keeping this blog-post short as there isn't too much behind this effect. If you have any questions, please leave them below and we'll get back to them.


For Ben Watts' tutorial that inspired the wetmap technique, you can see it here.


That's all for this tutorial, thanks for watching!

If you would like to find documentation on VEX code


If you think we're awesome then go like our page


or subscribe to our YouTube Channel


If you would like us to recreate any movie effects or have any ideas of your own then please comment down below and we'll try our best to do it.





Share on Facebook
Share on Twitter
Please reload

Related Posts
Please reload

Follow Us
  • Facebook - Black Circle
  • Twitter - Black Circle
  • YouTube - Black Circle
Support our Tutorials
Search By Month
Please reload

Search By Tag
Please reload

Recent Posts
Please reload