ABSTRACT

Growing Clouds with Cellular Automata  While you could attempt to simulate the growth of clouds using fluid dynamics, doing this at the scale of an entire cloud layer would be slow and overly complex (although it has been done [Kajiya and Herzen 1984].) Clouds are complex natural phenomena, and attempting a rigorous physical simulation of their growth and the transport of light within them is computationally prohibitive. Rather, we seek techniques that produce results consistent with a viewer’s expectations of what a cloud should look like, without overthinking the underlying physical properties. One such shortcut is the use of cellular automata to grow clouds. You might remember cellular automata from the game Life, where very simple rules about a virtual cell’s neighbors can produce complex colonies of cells that grow and shrink over time. Work from Nagel and Raschke [1992] and Dobashi et al. [2000] applying this same idea to the formation and growth of clouds is summarized here. There is some physical basis to this technique; in general, we know that clouds form when a humid pocket of air rises and cools, causing a phase transition that turns its water vapor into water droplets. We also know that clouds tend to form vertically and horizontally, but generally don’t grow downward. We start by defining our cloud layer as an axis-aligned bounding box divided into cubic regions that represent cells of air. Later, this three-dimensional array of cells will become the voxels that are volumetrically rendered. Each cell consists of three states, each represented by a single bit:

■ VAPOR_BIT, indicates whether the cell contains enough water vapor to form a cloud.