Water drop 1 – Observe rainy world
December 10, 2012 16 Comments
Version : 1.2 – Living blog – First version was 10 December 2012
This post is the first of a series about simulating dynamic rain and its effect on the world. All in the context of games:
Water drop 1 – Observe rainy world
Water drop 2a – Dynamic rain and its effects
Water drop 2b – Dynamic rain and its effects
Water drop 3a – Physically based wet surfaces
Water drop 3b – Physically based wet surfaces
Water drop 4a – Reflecting wet world
Water drop 4b – Reflecting wet world
In several games today there are dynamic weather effects. The most popular weather effect is rain. Rain has sadly often no effect on the gameplay but it has on the visual. Rain in real life has a lot of impact on the appearance of the world. The goal of this series is to describe technique, both technical and artistic, to be able to render a world rainy mood. By wet world, I mean not only world under rain, but also world after it stop raining. Let’s begin this series by an observation of the real-life wet world. As always, any feedbacks or comments are welcome.
Real wet world
The first thing I have done when I started to study this topic for my game “Remember Me” is to make a lot of references. All pictures are programmer’s photography with low camera :). I should advice that’s I focus on moderate rain in urban environment not rain forest or other heavy rain. Let’s share some result (click for high res version).
The first thing everybody notice when it’s raining in the night is the long stretched highlight reflection of the bright light sources:
But this is not restricted to the night (and even not restricted to wet surface, it is only more visible with wet surfaces):
Highlight reflection vary with the roughness of the underlying surface:
The highlights get dimmer when the surface is rougher (This is energy conservation):
Highlights size depends on view angle. The anisotropic reflection seems to follow a Blinn-Phong behavior (Also Blinn-Phong model don’t allow to strech so much):
However, when the surface is smooth we have a perfect reflection (left), whatever the distance, following a Phong behavior (Note: Blinn-Phong have the same behavior for perfectly smooth surface). The right image show how the perturb water surface make the green light appear twice:
The reflection fuzziness depends on view angle, light angle, index of refraction (i.e specular), roughness of the surface and distance from the light source (but only in the case of rough surface, for smooth surface fuzziness not change):
Not only bright light sources are reflected but everything is and the reflection is colored even in the night (often the dark avoid to see a colored reflection because there is not enough reflected light):
Water accumulates in low depth level first (hole, crack or base on the curvature of the surface…):
When there is enough water accumulated, we can see that a thin layer of water or a deep puddle exhibit a double layer behavior. We can see a water layer and an underlying surface layer:
The reflection of the water layer follows the Fresnel law. This mean that’s you have full reflection at grazing angle (0°) and low reflection when looking perpendicular to the surface (90°) (In fact every surfaces have Fresnel reflection wet or not but this is more obvious with water):
Looking at the last pictures of this two series (perpendicular to the surface), you can see my body “not reflecting”. With an index of refraction of 1.33, water reflects 2% of incoming light for 90° angle. Depends on the brightness of the incoming lighting and the albedo of the underlying surface, the reflection can appear faint or may even be totally swamped by the other light sources. In the left case below I am not bright enough to see my reflection, but the light coming from the sky are strong and can be seen as a very light white tint in the water (overcast sky). In the right case, we can distinguish color appearance of the reflected building because the sky light bounces on it whereas my body facing the ground does not bounce enough light.
When underlying surface have dark albedo and you have a clear sky, the water surface behave almost like a mirror:
I gather a lot of rain effects in a video : Rain effects video on youtube.
Rain cause ripple (begin of the video) only where there is sufficient accumulated water. Ripples are concentric circle interacting together and the number depends on rain intensity. There is rain splashes everywhere and the rain drops are almost invisible for light rain (1:20). Wind has influence on water puddle (1:34) and on rain drops direction too (not in the video). Water stream can be generated base on ground inclination (1:55). Droplets from misc object (2:00) and falling drops from rooftop with some strong splash on the ground.
Following pictures show ripples (But this is hard to see on a picture):
Wet surface are diffusively darker and specularly brighter:
But not all materials are subject to a darkening of the diffuse term, either plastic or metal:
Drying is irregular (can depend on curvature) and can take long time depends on the weather (overcast, warm, clear):
Water in small hole/Cracks/gap “disappear” quicker than puddle. Puddle can still there a long time even with a perfect dry ground around:
When drying, specular strength disappears faster than the darkening of the diffuse:
Surfaces don’t dry at the same speed (Left is totally wet, right is dry, middle in-between):
Objects parallel to rain like walls are almost not affected by it. Objects with a complex orientation like a tree are affected but not everywhere (right tree is wet, left tree is the opposite dry side):
With enough water accumulated on top of objects there can be some of the water sliding on the side depends on object shape (But as you can see half of the side still dry). The water sliding is slow:
Lighting has a lot of influence on the rain, particularly during the night. Rain drop are often difficult to see but are highly visible when reflecting light. In the previous video, there is example of light influence: Rain effects video on youtube. Lit ripple in the night (2:25). Lit rain splashes in the night (2:31) which are more visible than in the day because of the back lighting. Lit raindrops (2:37). The rain drops are perceived as streak particles but in fact the long streak is cause by motion blurring of the camera or our eye. The drop itself has a changing not necessarily spherical shape. The rain drops falling is not always perpendicular to the ground because of wind:
Under strong rain, there is atmospheric scattering modification (Fog) and light through rain produce a misty glow effect:
Under strong rain, some objects have a small misty rain halo on top of them:
(No picture for now).
Good reference can also be found at  with some explanation of the anisotropic reflection.
We see many things here and others are not showing like the raindrop movement on glass surfaces, the windshield effect etc… This series aim to talk about several of the thing observe:
Dynamic rain and its effects: The second water drop deal with how to render the raindrop, the raindrop splash, the ripple, the puddle… Some basic water influence on material and drying process will be discussed as well as fog. It will not discuss the glow or droplet of water on windows.
Physically based wet surfaces : All material change due to water influence will be discuss in details in the third water drop, this include Fresnel effect, double layer, the diffuse and specular change and the drying. It will not discuss about material becoming transparent when wet.
Shiny illuminated wet world: All the lighting, reflection and the stretched highlight will be detailed in the fourth water drop post. It will be based on environment map and specific lighting model.
This series will not discuss any ocean water/lake/mid-knee water or effect like caustics or water volume. Hope you will enjoy it.
 Neil Blevins, “Anisotropic Reflections”, http://www.neilblevins.com/cg_education/aniso_ref/aniso_ref.htm