Flame: noise scales in x,y, translates in z

 

The corona on the left was made as follows:
  1. Create a smooth gradient function the drops off radially from bright yellow to dark red.

  2. Phase shift this function by adding a turbulence texture to its domain.

  3. Place a black cutout disk over the image.

This creates a fine static image, but how do we animate it? If you just scale the domain of the noise to make the texture flow outward, you get a very fake sort of effect, sort of like those old lightbulb and rotating aluminum foil fireplaces: the texture features move straight outward with no random movement.

To improve this, we use 3D noise. We indeed scale the noise over time, but also, as the animation proceeds, we translate the domain of the noise in its z dimension, out of the image plane. This creates a controlled random flicker in the texture, which complements the outward flow produced by the scaling, and results in remarkably real looking flame animation.

Click here for a small (49K) cycling animated gif of the flowing corona. Click here for a large (452K) high quality cycling animated gif of the same.