She’s a waterfall…
In one of my first posts I mentioned that I had been looking at using Mudbox to sculpt some wave detail displacement maps to use on a rough ocean. I’ve been impressed by the robust performance of vector displacement maps generated in Mudbox and rendered in 3DSMax, so the idea was to take some of the guesswork out of rendering a procedurally shader displaced ocean by using a series of tiling vector displacement maps that would scroll over each other and blend in and out and whatnot. Using some Houdini style Tessendorf deformed ocean patches as reference, I was able to sculpt up some near tiling geometry, whose extracted vector displacement map could be applied to a plane. I also generated regular 32bit displacement maps based on the same geometry. The ocean scene is on the long finger but after seeing the incredible primordial landscapes and waterfall (actually Dettifoss, filmed in Iceland) in the opening scene of Prometheus I thought I’d try to make a simple waterfall by using the greyscale displacement maps generated in Mudbox scrolling along some basic geometry. No particle systems or fluid dynamics, just some scrolling textures, this way it could potentially be recreated in realtime. For that reason I chose to use modifier based displacement in Max as I wanted quick viewport iterations that I wouldn’t see until render time with the shader based variant.
First up, I blocked out some simple geometry and unwrapped it so that the textures would scroll vertically along the UVs, a quick planar map with some UV relaxing did the job reasonably well and a pelt stretch and some further relaxing finished the UVs.I made some tweaks to the geometry to pull out areas of roughness at the edge of the falls.
Unwrapping the UVs early meant that I could easily turbosmooth the geometry without having to wrestle with a detailed mesh of 6 or 7 iterations down the road, It looked like this after smoothing (low poly wireframe overlay)
I wanted to suggest a change in the water as it plunged over the falls, churning into foam from raging rapids but I didn’t want to use particles (I’m always on a time budget with this stuff!) so I opted instead for a self-illumination (emissive) map that would over-brighten the textures at that point. I started with an inverted ambient occlusion map generated using the Surface Mapper tools in Max and then painted in some blobby foam areas. This map had no animation, it was completely static, I just hoped that the blown out lighting would work well with the scrolling textures. The mapped geometry looked like this
Next was to try some displacement tests. I generated a normal map from the displacements I got out of Mudbox and used it to create smaller wavelets over the larger waves caused by displacement. I then found a choppy water texture on cgtextures.com that tiled and I could use for some diffuse shading. These were the textures used, combined with some Fresnel shading
Next, I blocked in a camera move, being careful not to show the geometry extents, which were very close and didn’t leave much to work with, mental note for next time. After a few tests I decided to add some rock models to the foreground and one right in the middle of the waterfall. They gave a point of reference or anchor in a scene where there is a lot of movement. Here is a video showing progression towards a final render
The camera move was a little too smooth and mechanical for my liking, so I went ahead and overdid the shaky handheld movement in After Effects, also adding droplets build-up on the camera lens, vignette, colour grading and some bad camcorder sound. If you have any questions about any part of this process please add to the comments below and I’ll be happy to elaborate. Here’s the end result
Great, Thank you 🙂 !
Fantastic post, and a great time saving tip. I recall once going about a similar process using scrolling textures and displacement, although in my case it was for a dog weeing. It worked and was far quicker then using blobmeshes or fluid simulations. I’m still scarred from the experience though.
Thanks Kev,
Could be taken a lot further for a hell of a lot more realism if one had the time!
Class… dying to overlay a nice deep rumble