Clouds

The development of novel volume shading techniques
Caleb J. Howard  -  1998-2000

After I finished work on "Star Trek IX - Insurrection", I was, for a lovely instant, unassigned at work (VIFX - Los Angeles) to any particular task.  I took advantage of this time period to learn a bit about Pixar's RenderMan(tm) product, and about volume shaders in general.

Looking for a good, simple-yet-representative target image to render, I settled initially on a seemingly straightforward cloud.  Clouds are necessarily volumetric in their colour as well as their lighting models.  Their shape, while fractal in nature is amorphous enough to be forgiving if I settled on a relatively simple density function.  Within fairly broad bounds, pretty much any shape object will do, as clouds may seem any shape.

The following images start with Figure 1. which is the latest image I have generated.  It was created by a port of my previous RenderMan work  to the Houdini VEx language, from Side Effects Software (the choice of seriously procedurally-minded 3D digital artists).  After that, the images go back to the start of my initial RenderMan work, and show some interesting stages in the development of this final shader set.  In none of the following images is any traditional primative-based geometric representation passed to the renderer.  All of the shapes rendered are defined in the shader as abstractly represented density functions.  In each image, a single polygon which exactly fills frame is used to trigger the shader call, and everything else happens in the shader.
 
 


Figure 1.  "VexCloud.jpg" - The final cloud image.  Note the self shadowing,
rim lighting, and "God-Rays" effect of the lighting model.
Click here for a .mpg file of the Vex Animation (3.2 Mb)
 


Figure 2. "Volume_17.jpg" - An early volume test.
Click here to download a .mpg file (301 Kb)
 


Figure 3.  "ColourEgg.jpg" - An early attempt to find and colour a spheric
density function isosurface
 


Figure 4.  "ShadowLumpy.jpg" -
An early self-shadowing render.
 


Figure 5.  "Stereo_2.jpg" - With the self-shadowing roughly working, and a lighting model in place, I tried a stereo pair.
Click here to download an .mpg file (646 KB)
 


Figure 6.  These are early tests of the Gradient Decent method for finding
isosurfaces on the Left, and the Stochastic method on the Right.
 


Figure 7.  Another refinement of the above in Figure 5.  Additional level of noise.
 


Figure 8.  "Stereo_Anim.jpg" - Frames from an animation rendered in stereo by the stochastic method.
Click here to download a .mpg file.  (1 Mb)
 


Figure 9. Texture map lookup
added for colour.
 


Figure 10.  "Cloud_Development.jpg" - Frames from an animation using the
Stochastic method to animate a density function developed to simulate the
evolutionof a cloud.
Click here to download the .mpg file (2 Mb)