Kayle Gishen

Introduction

Using OpenGL 4 Tessellation shaders we tessellate an icosedehron and then perturb the generated vertices along the original normal by a noise function.

Tesselation

Tessellation is done using the glsl tessellation shader and is computed each frame. The original object is just an icosehedron which is then tessellated based on the camera's distance to the original patch. The LOD starts above OpenGL's maximum tessellation parameter providing a smooth object until the camera's distance starts to increase by a significant amount.

Noise

The noise function is 4D simplex noise mapped to [0-2]. The parameters for the noise are the original 3D coordinates of the vertex as well as time.

Post Process

The post processing used is a simple sobel edge detector. The algorithm is run on the results of the original shader by rendering to a texture in the first stage and then using this texture for the sobel filter, so the process is done in 2D.