Back to Projects

Procedural Planet Generation

Previous Pause Next

Time: 4 Months
Date: Spring 2013
Role: Design and Implementation
Tools: C++, OpenGL and Nvidia CG
Description:

A procedural planet generation library which was built for the specialization phase of my bachelor. The goal for this library was to provide a graphics library independent solution that allows for simple creation and tweaking of procedural planets. This library generates everything required for rendering a planet from orbit, from meshes to textures. The library communicates with the application via a callback system for various engine-specific tasks and has a built-in level of detail system to keep the GPU workload at a minimum.
This library uses a gradient/contribution system to define the final texture colour of a planet. For every planet we have a couple of 'contribution' textures which describe for each pixel which gradient should be sampled and at what position, and how much of the sampled colour contributes to the final texture colour. By storing these gradients in an external file this system allows for very easy tweaking of the planet's final appearance without requiring access to the source code.

Back to Projects