VI I – 18/19 Edition
Assessment
Assessment details and theme proposals (PDF)
Nau3D
GitHub (LINK)
Documentation in (LINK)
Syntax Highlight for GLSL – Notepad++
Dark and Light Themes (ZIP)
Lecture 13 – Shadows
24/01/19
Topics:
Shadow volumes algorithm
Shadow Mapping: basic algorithm and matrices.
Issues of shadow maps.
Algorithms to deal with perspective mismatch: Parallel Split Shadow Maps and Trapezoidal shadow maps.
Filtered shadows: Percentage Closer Filter, Variance Shadow Maps, Exponential Shadow Maps.
Materials:
Parallel Split Shadow Maps (LINK)
Trapezoidal Shadow Maps (LINK)
Variance Shadow Maps (LINK)
Exponential Shadow Maps (PDF)
Nau projects (ZIP)
Lecture 12 – Compute Shader
18/01/19
Topics:
Compute Shader: inputs e outputs. Work groups and shared memory.
Image processing: exploring three alternatives with the graphics pipeline
Materials:
Compute Shader Slides by Mike Bailey (LINK 1 e LINK 2)
OpenGL.org wiki – compute shader (LINK)
Nau Projects (ZIP)
Lecture 11 – Tessellation Shaders
13/12/18
Topics:
Features and functionality of the Tessellation shaders. The full graphics pipeline.
The tessellation process.
Bezier patches, PN-Triangles, Phong tessellation
Materials:
Phong Tessellation (LINK)
PN-Triangles (PDF)
Slides on Tessellation shaders with OpenGL (PDF)
Nau Projects (ZIP)
Lecture 10 – Geometry Shader
6/12/18
Topics:
Features and functionality of the Geometry Shader
Inputs and Outputs. Texture Arrays and Viewports
Detailed examples: contour detection, stereoscopic vision, normal vector visualization
Assignment:
NAU projects: show normals (to do) (ZIP)
Materials:
Lighthouse3D GLSL tutorial (LINK)
Lecture 9 – Parallax Mapping and Displacement Mapping
29/11/18
Topics:
Normal mapping issues
Parallax Mapping and Steep Parallax Mapping with Self Shadowing
Vertex Displacement Mapping
Assignment:
Write shaders to generate a terrain starting from ZIP
Materials:
Nau Projects: Parallax Mapping (ZIP)
Lecture 8 – Normal mapping and deferred rendering
22/11/18
Topics:
Normal mapping and bump mapping
Tangent space and the TBN matrix
Computing NM in tangent space and in camera space
Deferred rendering
Materials:
Deferred Rendering (PDF)
Nau Projects: Barrel (ZIP), Normal Mapping (ZIP)
Lecture 7 – Reflection and Refraction
08/11/18
Topics:
Reflection and refraction
Snell’s law, Fresnel and Schlicks approximation
Cubemapping
Assignment:
Write shaders for reflection and refraction using cube mapping starting from ZIP
Materials:
Cube Mapping (PDF)
Nau Projects: Cube mapping (ZIP)
Lecture 6 – Texturing
25/10/18
Topics:
Applying textures
Using multiple textures to achieve complex effects
Materials:
Texturing notes (ZIP)
Nau projects (ZIP)
Lecture 5 – Texture coordinates
18/10/18
Topics:
Texture coordinates as a vertex attribute
Usage of texture coordinates as data
Implementing functions based on texture coordinates
Usage of textures as precomputed functions
Assignment:
Build a project to texture a cube
Materials:
Texture Coordinates (LINK)
Nau projects (ZIP)
Lecture 4 – Point and spot lights
11/10/18
Topics:
Equations and notes regarding point and spotlights
Assignment:
Extend the suplied shader to implement point and spotlights
Materials:
NAU project for directional light (ZIP)
Lecture 3 – Gouraud vs. Phong
4/10/18
Topics:
Toon Shading per vertex (Gouraud), mixed, and per pixel (Phong)
Normalization issues
Assignment:
Implement directional light with specular component
Materials:
Notes: Lighting – Gouraud and Phong (PDF)
NAU Projects (ZIP)
Lecture 2 – Introduction to shader writing
27/09/18
Topics:
NAU Project definition
Writing Shaders: Lighting per vertex
Materials:
NAU Projects (ZIP)
Writing shaders (ZIP)
Lecture 1 – Introduction to the graphics pipeline and shader programming
20/09/18
Topics:
Course presentation and details of the assessment procedure.
The rasterization pipeline and its components.
Shader programming.
Brief introduction to NAU.
Materials:
Lighthouse GLSL Tutorial (LINK)
Core OpenGL Setup (PDF)