This sketch describes a model for realistic illumination of clouds
combining highly detailed geometry and accurate single scattering
computation, with approximate calculation of high albedo, anisotropic
higher-order multiple scattering.
A number of models for generating clouds have been presented in the computer graphics literature. The most commonly used methods are based on surface textures. [1, 2, 3] Although these methods can give very realistic effects, they are limited to certain view directions and/or distances. For instance, it is not possible to generate realistic back-lit clouds with these models. To overcome these limitations, some researchers have suggested techniques based on the accurate physics of illumination inside clouds. Jim Blinn [4] used a single scattering model to implement accurate scattering from the rings of Saturn. Ebert [5] presented volumetric model of clouds including Blinn's model. Kajiya and Von Herzen [6] generated cloud images and suggested a model for multiple scattering. As pointed out in [6], using single scattering to render clouds with a high albedo (e.g., clouds of water vapor) will produce the artifact of unrealistically dark shadows. The zonal method [7] was the first model to deal with the multiple scattering issue. This method is not correct for clouds, however, because it assumes isotropic scattering. The scattering in clouds is highly anisotropic, with strong forward and weaker back scattering. Max [8] proposed an efficient model for anisotropic multiple volume scattering. This model divides the volume into a regular grid of voxels. For each voxel, discrete propagation directions are used to approximate anisotropic scattering. The radiation from each voxel is propagated to neighboring voxels taking into account the directionality of scattering. One drawback of such voxel-based models is the lack of high-frequency detail in the cloud geometry. Generally, the number of voxels that can be used is severely limited, relative to the image pixel size, due to memory constraints.
This sketch proposes a solution to this problem. Musgrave [9] described a method for ray marching implicit hypertextures with accurate single scattering and adaptive level of detail. The step size of the ray march varies with distance and an error specified in screen space (e.g., one pixel). One can control the level of detail in the hypertexture model of cloud geometry to maintain high frequencies at or near the Nyquist limit for theoretically maximal image detail, without aliasing.
In multiple scattering, the first scattering is generally the strongest factor in the illumination. Thus, we should to compute it more accurately. Second and higher order scattering are relatively weak, compared to the first. The basic method we propose is to apply Musgrave's ray marching technique to calculate cloud geometry and first-order scattering, and Max's method to calculate second and higher order scattering.
Preliminary results are promising. Images can be seen at:
http://tangle.seas.gwu.edu/~sylee/cloud.html