CS 5610/6610 - Spring 2023 - Interactive Computer Graphics
Project 8 - Tessellation
In this project we will implement simple normal mapping and displacement mapping. This project will include using both tessellation shaders and geometry shaders.
Requirements
Step 1: Normal mapping
Your program must take the name of a .png image file as its first command-line argument.
This image will be used as the normal map texture.
Write a tessellation shader that takes the plane from Steps 1 and 2 and tessellates it into many triangles.
Left and right arrow keys should control the tessellation level.
Move the vertices of the tessellated plane up using the displacement map values in the tessellation evaluation shader.
Note that when using displacement mapping, you might want to handle the transformations in the tessellation evaluation shader, instead of the vertex shader.
An example plane with a displacement map.
Use the same or a similar geometry shader as in Step 2 to display the triangulation.
As above, the space key should control whether the triangulation is displayed.
An example plane with a displacement map, showing triangulation.
An example plane with a displacement map, showing triangulation of a lower tessellation level.
Additional Requirements for CS 6610 Students
Use shadow maps to compute shadows with displacement mapping.