Originally a semestral project turned into a bachelor thesis. It became my master thesis few years later but completely reworked. Version 1.0 is basically a random planet generator. You set up initial parameters and let it generate and render a planet using the ROAM algorithm. Version 2.0 is an extendable library for generating virtual worlds and rendering them in real-time.
The goal for version 1.0 was to write an application for procedural generation of planetary bodies. The project has been inspired by articles written by Sean O'Neil for Gamasutra. I wrote the application from scratch using an adaptation of a ROAM algorithm proposed by O'Neil utilizing Perlin noise generator run through the fractal Brownian motion to provide heightmap for the planetary body.
This semestral project eventually turned into a bachelor thesis. The program is capable of generating random planets given a small set of parameters. It then uses GLSL shaders to generate the terrain texture on the fly. Planets can be saved (their parameters) to be regenerated later. They can also be exported into .obj mesh format.
Version 1.x.x features
- Crossplatform compatibility (tested on Windows XP and Linux 32/64bit)
- Command line interface
- 2 camera modes for viewing generated meshes
- Dynamic level of detail
- Export to .obj format
- Loading and saving generated planets
Resources
- Win32 binary (1.1.2) (.zip)
- Complete distribution (1.1.2) (.zip)
- Project overview (slides) (.pdf)
- Bachelor thesis (.pdf)
- User manual (.pdf)
- Code documentation (.pdf)