Super Nova: Procedural particles screensaverAugust 2, 2011 Graphics
Super Nova is a planet generation experiment gone berserk. Literally. Consisting of almost half a million procedurally animated particles, it swells, collapses, freezes and explodes in all sorts of colors and shapes, like supernovae do. Behind the scenes, it sort of combines spherical harmonics with noise summing to create spherical planet fractals, similar to how Fourier synthesis can be used to create a procedural heightfield.
But the result doesn't really look like a planet, right? That's because the procedural noise on top of a perfect sphere is added using such extreme amplitudes, that valleys actually can go deeper than the planet's core, and protrude outwards at the other side. This creates the supernova-like shapes when the procedural surface is rendered as particles in this C++ / OpenGL screensaver from 2007.
Every second or so, Super Nova generates new random weights and harmonics 'epicenters' for the planet generator. Amortized over many frames, the generator applies these to update a new target position for each of the 400,000 particles. When the new complete set of positions is ready, each individual particle's interpolated cubic B-spline is updated using the new position as the new latest control point, creating a smooth trajectory from old harmonics to new ones.
The camera animation is also procedural. It simply picks a new eye and look-at position once in a while and tries to get there using constant adjustments to its velocity, while compensating for an additional jittery noise distortion to get a slight cam shake going. Each frame, this raw velocity is low-pass filtered before being integrated into the new position. That way, both the trajectory, the speed and the direction remain smooth but interesting.
- Download this free sceensaver for Windows