- Procedurally generated displacement map and animations
- Uses displacement, normal and cube mapping
- GUI to interact with parameters
The vertices of a procedurally generated plane are displaced in a vertex shader. The vertex’s normal, tangent and bitangent are then computed in the vertex shader to perform normal mapping. Displacement mapping is used to create waves and normal mapping is used to put small details such as ripples on the waves. Pixel colour is computed using the Cook-Torrance shading model, reflections via cube mapping and mixing a high wave color and a low wave colour based on the height of the displaced vertex.