Britonia

A fullscale planet simulation.

Background

Britonia was one of my first big projects, and unfortunately proved a little too ambitous to fully realize, but I learned a lot during the development process and ended up with an impressive (for the time) 'to-scale' planet renderer with down to one meter precision.

There were a lot of technical challenges to overcome to implement the planet renderering, but none so much as dealing with single-precision (32-bit) floating point issues.

Other cool features of the eventual tech-demo was an atmospheric scattering modelled after 'Accurate Atmospheric Scattering' (O'Neil, 2004) and 'Efficient Rendering of Lightning Taking into Account Scattering Effects due to Clouds and Atmospheric Particles' (Nishita et al., 2001).

There are still a few videos on my YouTube channel featuring older demos of flying around the planet:

Procedural Generation

The planet generation in Britonia made use of numerous methods of procedural content generation techniques:

Gradient Noise Functions

I used a reference implementation of Ken Perlin's Perlin Noise to generate the ground heights of the various points on the planet. The ground heights were generated on demand, and only at the resolution it was required.

Lindenmayer (L-) Systems

I used Lindenmayer systems for the geneneration of both the fauna and the road networks on the planets. To the right you can see a image demonstrating the generated road system from the various inputs.

References:

Nishit et al. (2001) - nis-lab (http://nis-lab.is.s.u-tokyo.ac.jp/~nis/cdrom/pg/pg01_lightning.pdf)

O'Neil S. (2004) - gamedev.net (http://www.gamedev.net/columns/hardcore/atmscattering/)

Perlin (2002) - New York University (http://mrl.nyu.edu/~perlin/noise/)