top of page

PROCEDURAL PLANET GENERATOR (DX11)

UNIVERSITY PROJECT

In my 3rd year of university I created a piece of software I am particularly proud of for my Procedural Methods class. In this module, I challenged myself to take traditional height mapping using Improved Perlin Noise, and mapping to spherical terrain to create random planets! I also created procedural moving clouds, also using Perlin Noise, in the GPU! The GPU is also used to blend textures together depending on the current height. All this was coded in C++ & HLSL inside a DirectX11 framework provided by my lecturer.

FEATURES I IMPLEMENTED

PROCEDURAL TERRAIN MAPPING

The height map is calculated using the Improved Perlin Noise algorithm to create a 2D rectangular map, this is then mapped to the sphere (excluding the poles). Each height value is then scaled down depending on its distance to the equator, height remains the same at the equator but as the points approach the poles they are scaled down until reaching a value of 0 at the poles. The algorithm also makes use of Fractional Brownian motion.

​

PROCEDURAL TEXTURING

The planet makes use of a procedural texturing shader. This shader takes in a low, medium, and high height texture - then blends these textures together based on the height map.

​

PROCEDURAL CLOUDS

The procedural clouds are created by layering 2 calculations of Perlin Noise and only displaying certain values. These calculations are done on the GPU and are run constantly with the inputs constantly changing, to create the illusion of the clouds moving around the planet, forming, and fading.

​

bottom of page