Cloud Modeling for Computer Graphics

Gustav Taxén
gustavt@nada.kth.se
http://www.nada.kth.se/~gustavt/

All images on this page are copyright 1999 Gustav Taxén.


Introduction

This page contains some results from my master's thesis work.

report.ps.gz - The thesis in PostScript format (~1.1Mb)

report.pdf - The thesis in PDF format (~560Kb)

The initial aim was to try to create realistic images of clouds by combining meteorological simulations and different rendering schemes. As it turned out, implementing a state-of-the-art meteorological model is a huge task. Also, due to heavy computational demands, the simulation can't run on a standard desktop computer. Therefore, I had to settle for "fake" models.

The following image sequence shows several attempts at creating cloud models based on fractal noise.

Integration of Ken Perlin's noise() function. The cloud macrostructure is defined by a set of ellipsoids. Early models of cumulus mediocris over an ocean. The ocean waves are generated from fractal noise with a special frequency distribution.

This is an attempt at creating a more uniform cloud density distribution.

Rendering schemes

The images below show a cloud rendered using two different methods. The first method simply integrates the cloud density along each eye ray. The second method simulates single scattering under a low albedo assumption.

Cloud rendered using the first method. Cloud rendered using the second method.

Both images uses a 31x31x31 density grid and are 200x200 pixels. The time required for rendering was approximately 6 and 24 seconds, respectively, on an Intel Pentium 90 system running RedHat Linux 4.2.

Unfortunately, the low albedo assumption doesn't hold for real clouds. Simulating multiple-scattering under a high albedo assumption is quite difficult. The calculations are too expensive to be feasable on a desktop computer. Therefore, I chose to trade realism for speed and use a multiple scattering "hack".

This is an early image that shows my multiple scattering "hack". The cloud color along an eye ray is calculated by weighting together three colors: the background color, the color of cloudy air in sunlight and the color of cloudy air in shadow. This is a later image with better parameter settings.

Results

These images didn't make it into the report. Click on the thumbnails to view the larger version.

Cumulus congestus and ice crystal halo.
Cumulus mediocris and ice crystal halo.
Cumulus mediocris with sun above and to the left.
Cumulus mediocris with sun in front and to the left.

The clouds are still not quite convincing. The main reason is that the "noise" is a bit too uniform - real clouds look more "wispy". When I have some free time, I intend to continue to tweak the parameters for the modeller and the renderer. I'm particularly interested in creating images of sunsets. The aim is to create images as realistic as those created by Gardner ("Visual Simulation of Clouds", SIGGRAPH '85) or Nishita et al. ("Display of Clouds Taking into Account Multiple Anisotropic Scattering and Sky Light", SIGGRAPH '96). Here's a link to one of Gardner's images.