Procedural Methods (Direct X11)

Overview

In the procedural methods module I implemented several procedural techniques on the CPU. The following techniques were implemented in a Direct X11 framework:

  1. Hydraulic Erosion
  2. Trochoidial Waves
  3. Voronoi Noise (GPU)
  4. Simplex Noise
  5. Perlin Noise
  6. Improved Perlin Noise
  7. Octave Perlin Noise
  8. Ridged Perlin Noise

Hydraulic Erosion

The Hydraulic erosion algorithm implemented aims to simulate the erosive features exerted on terrain from water droplets.

Water droplets erode the terrain through bilinear interpolation across four vertices taking into account the gradient at each point.

If the droplet identifies the current cell is a pit, the droplet releases sediment until the pit has been filled.

Trochoidial Waves

Trochoidial waves were implemented on the vertex shader and textured using a voronoi noise pattern, discussed below. The algorithm aims to capture the motion of waves by displacing the vertices using sine and cosine operations.

To procure the sharp troughs, an offset with respect to the original vertex position, the anchor point, is applied in both the 'x' and 'z' directions to produce circular motion.

The amplitude is controlled through a ratio, s / k, where 's' is a value between '0' and '1' and 'k' is 2 * PI divided by the wavelength.

FOOTER

This is where all the legal stuff goes I reckon.

POPULAR TAGS

Engine Programming Graphics Programming Software Engineering C++ C# HLSL Direct X Game Programming GLSL

Rhys Duff Portfolio