Realtime Rendering

Assignment 2

Assessment: 33%

Deadline: Fri 20/9/2019 9pm (end week 8)

Changes and Clarifications

Base Code

The following base code is made available. An SDL version will be made available after assignment 1 as a starting point. It is a procedural sine wave program, which uses OpenGL Mathematics (GLM) for transformations rather than (deprecated) OpenGL transformations.

Aims

This assignment is intended to have students learn about shaders for performing transform and lighting calculations, another key aspect of modern graphics programming, along with providing data using buffers.

Individuals or Pairs

The assignment may be done in pairs.

Problem Description

This assignment is intended to allow students to gain experience in writing shaders and using GLM for transformations instead of OpenGL. It has four main parts:

The assignment is to use a procedurally generated wave. The images below show a wave rendered using shaders using Blinn-Phong lighting (same as in the OpenGL fixed pipeline) and Phong lighting.

The assignment is in part based on using the shaders and code from the shader tutorials week 5, week 6, week 7, the brick example from the Orange Book and the Lighthouse lighting (and other) tutorials.

Start with the sine wave generator program (linked above) which uses GLM for transformations and can switch between fixed pipeline OpenGL lighting and CPU based lighting.

Use shaders for geometry generation, lighting calculations and animation:

Either glut or SDL can be used.

Visuals and Performance - answer five questions (in a readme.txt file, no more than than a paragraph each):

Marking Guide/Rubric

Note: subject to (minor) change.