Download the final report [here]
During the Advanced Graphics course in 2008, I did a couple of experiments with computing fractals on the GPU, with the purpouse of creating realtime, animated clouds.
Cloud-like shapes are notoriously difficult to express as triangle-based 3d models, so we looked at various alternative approaches and finally settled on generating a cloud-texture which is then applied to a skydome.
In the early stages of our project we experimented with particle systems, where the particle would consist of an implicit function that is combined with perlin noise:
This method proved to be quite slow, probably because of the amount of particles needed in order to get a decent cloud.
We then applied a fBm fractal to the skydome:
On the upside, we had animated clouds covering the entire sky at realtime speeds. The downside of using this method was that the clouds are relatively ‘flat’ and didn’t look quite rough enough. Also, although the calculations were in realtime, the performance of 4D perlin noise was somewhat dissapointing.
Because of this I looked into using a different type of noise as the basis for the fractals we used, and ended up implementing 4D simplex noise and this resulted in the following:
The performance was improved, and in my opinion it looked better than before.
Finally we attempted to adress the ‘flatness’ of the clouds by using fractals to dynamically distort a model. It didn’t quite turn out like a cloud, but more like a mysterious bubble, sort-of similar in appearance to 3d metaballs: