VTR – 25/26 Edition

 
Nau3D
  • GitHub (LINK)
  • Documentation in (LINK)
  • Windows Binaries (LINK)
Assessment
  • Assignment for practical work and essay (LINK)
  • Link to template for essay (ZIP)

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:

  • Notes: Lighting – Gouraud and Phong (PDF)
  • Starting point (ZIP)
  • Shaders written in class (ZIP)

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:


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:

  • Nau projects – Compute Hello World (ZIP)
  • Nau projects – Particles (ZIP)

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:


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:

 Posted by at 1:22 am