VTR – 25/26 Edition
Nau3D
Assessment
Lecture 1 – Introduction to the graphics pipeline and shader programming
25/09/25
Topics:
- Course presentation and details of the assessment procedure;
- The rasterization pipeline and its components;
- Brief introduction to NAU.
- Shader programming.
Materials:
- Lighthouse GLSL Tutorial (LINK)
- Core OpenGL Setup (PDF)
- 3D Models: rainbow bench (ZIP)
- Code written in class (ZIP)
Lecture 2 – Lighting
25/10/02
Topics:
- Toon Shading: from vertex shading (Gouraud) to per pixel shading (Phong)
- Normalization issues
- Specular component with Phong Equation
- Point and Spot Lights
Assignment:
- Implement a spot light
Materials:
Lecture 3 – Texturing: texture coordinates
25/10/09
Topics:
- Texture coordinates as a vertex attribute
- Usage of texture coordinates as data
- Implementing functions based on texture coordinates
Assignment:
- Update the shaders to perform multitexturing on a cube (starting point)
Materials:
- Starting point for class: ZIP
- Texturing notes LINK
- Shaders discussed in class (ZIP)
- Models and textures (models textures)
- Code written in class (ZIP)
Lecture 4 – Texturing
25/10/16
Topics:
- Applying textures
- Using multiple textures to achieve complex effects
- Perlin Noise
Assignment:
- Create a shader to render Earh with multiple textures
Materials:
- Texturing notes (PDF)
- Starting point for class (ZIP)
- Earth Texture: (JPG)
- Other textures (ZIP)
- Noise projects (ZIP)
- Shaders discussed in class (ZIP)
Lecture 5 – Reflection, Refraction and Chromatic Dispersion
25/10/23
Topics:
- Reflection and refraction
- Snell’s law, Fresnel and Schlicks approximation
- Chromatic Dispersion
- Cubemapping
Assignment:
- Write shaders for chromatic dispersion
Materials:
- Cube Mapping (PDF)
- Nau Projects: starting point (http://www.di.uminho.pt/~arf/storage/vtr/Aula06.zip).
- Shaders discussed in class (http://www.di.uminho.pt/~arf/storage/vtr/cubemapping.zip)
Lecture 6 – Normal Mapping, and Deferred Rendering
25/10/30
Topics:
- Normal mapping and bump mapping
- Tangent space and the TBN matrix
- Computing NM in camera space
- Deferred Rendering and Multisampling
Assignment:
- Implement normal mapping, deferred rendering and multisampling
Materials:
- Nau starting point (ZIP)
- Models and Textures (ZIP)
- Notes on Deferred Rendering (PDF)
- Learning OpenGL – Normal Mapping (LINK)
- Shaders discussed in class (ZIP)
Lecture 7 – Multisampling and Parallax Mapping
25/11/06
Topics:
- Computing NM in tangent space
- Normal mapping issues
- Parallax mapping
- Steep parallax mapping
Assignment:
- Complete project for deferred mapping and multisampling (start from the coded project from last class)
- Nau starting project for Normal mapping in Tangent Space (ZIP)
- Nau starting project for Parallax mapping (ZIP)
Materials:
- Learning OpenGL – Parallax Mapping (LINK)
- Shaders written in class – Multisampling deferred barrels (ZIP)
- Shaders written in class – Parallax Mapping (ZIP)
Lecture 8 – Geometry Shader
25/11/13
Topics:
- Geometry Shader: where it fits on the graphics pipeline, features and use cases.
Assignment:
- NAU Projects: show normals (to do) (ZIP)
Materials:
- Geometry Shader starting point for class (ZIP)
- Geometry Shader at Khronos (LINK)
- Mike Bailey notes on Geometry Shaders (LINK)
- GLSL Tutorial at Lighthouse3D (LINK)
- Shaders discussed in class (ZIP)
Lecture 9 – Tessellation Shaders
25/11/20
Topics:
- Features and functionality of the Tessellation shaders.
- The full graphics pipeline.
- The tessellation process.
- Bezier patches, PN-Triangles, Phong tessellation
Assignment:
- Phong Tessellation (ZIP)
Materials:
- Nau projects (ZIP)
- Phong Tessellation (LINK)
- PN-Triangles (PDF)
- Slides on Tessellation shaders with OpenGL (PDF)
- Shaders discussed in class (ZIP)
Lecture 10 – Compute Shaders
25/11/27
Topics:
- Features and functionality of the Computation shaders.
- Inputs and Outputs
- Dispatching
- Shared Memory
Assignment:
Materials:
- Compute Shader Slides by Mike Bailey (LINK)
- OpenGL.org wiki – compute shader (LINK)
- Shaders discussed in class (ZIP)
Lecture 11 – Compute, Tessellation and Mesh/Task
25/12/04
Topics:
- Shared Memory the Computation shaders.
- Culling and continouos dynamic LOD
- Task and Mesh shader model and workload allocation
Assignment:
- Image processing with shaders (ZIP)
Materials:
- Exploring Mesh Shaders (PDF)
- Introduction to Turing Mesh Shaders (LINK)
- Task/Mesh shader sample (ZIP)
Lecture 12 – Shadows
25/12/11
Topics:
- Shadow Volumes
- Shadow Maps: Vanilla version, PCF, VSM and ESM
- Trapezoidal Shadow Maps and Parallel split shadow maps
Assignment:
- Nau Projects to build shadow maps (ZIP)
Materials:
- Variance shadow maps paper (paper, example)
- Exponential shadow maps theory (paper, theory, intuition)
- Trapezoidal shadow maps (paper, recipe)
- Parallel split shadow maps (GPU GEMS 3)
- Models (ZIP)
Lecture 13 – Voxel Tracing and Signed Distance Fields
25/12/18
Topics:
- Ray Tracing in GLSL
- Geometric solid constructive geometry
- Ray marching in signed distance fields
- Signed distance field operators
Assignment:
- Complete the code for a ray caster on a 3D texture (ZIP)
- Complete the project to implement a ray caster on a SDF and compose a scene using the SDF operators (ZIP)
Materials: