CO317 Computer Graphics

CO317 Computer Graphics

This is the course page until 2019/2020. Do not use!

Overview

Note that this course has been timetabled for 4 hours per week:

  • Tuesday 11-1, room 340
  • Friday 4-6, room 308 and 206, 209 (for labs)

However, not all timetabled slots will be used every week so please check the timetable below for more information. All notes, tutorials and coursework (including coursework hand-out/in dates) can be found on CATE. Revision notes on vector algebra can be found here.

Questions can be discussed on the course’s Piazza page (317 Graphics [Spring 2020])

Timetable

Week 1 (starting 11th January)
No lectures, no tutorials.
Week 2 (starting 18th January)
14/01 Tuesday 11-12 01 Projections and Transformations Lecture Kainz
14/01 Tuesday 12-1 02 Transformations for animation Lecture Kainz
17/01 Friday 4-5 03 Clipping and 3D Geometry Lecture Kainz
17/01 Friday 5-6 3D space and transformations Tutorial Kainz, Hou, Budd
Coursework Task 1: Framework 1 week not assessed
Week 3 (starting 20th January)
21/01 Tuesday 11-12 04 Graphics Pipeline and APIs Lecture Kainz
21/01 Tuesday 12-1 05 Graphics APIs and Shading languages Lecture Kainz
24/01 Friday 4-5 06 Illumination, Shading & Color I Lecture Kainz
24/01 Friday 5-6 Getting started with GLSL Lab Kainz, Budd, Schmidtke
Coursework Task 2: Transformations 1 week not assessed
Week 4 (starting 27th January)
28/01 Tuesday 11-12 07 Illumination, Shading & Color II Lecture Kainz
28/01 Tuesday 12-1 Illumination, Shading & Color Tutorial Kainz, Hou, O’Sullivan
31/01 Friday 4-5 08 Texture Mapping Lecture Kainz
31/01 Friday 5-6 Illumination, Shading & Color Lab Kainz, Hou, O’Sullivan
31/01 23:59 Coursework Task 3: Illumination and Shading 1 week assessed Kainz, Hou, O’Sullivan
Week 5 (starting 3th February)
04/02 Tuesday 11-12 09 Rasterization, Visibility & Anti-aliasing Lecture Kainz
04/02 Tuesday 12-1 Texture Mapping Tutorial Tutorial Kainz, Budd, Schmidtke
07/02 Friday 4-5 10 Ray Tracing 1 Lecture Kainz
07/02 Friday 5-6 Generating Primitives Lab Kainz, Budd, Schmidtke
Coursework Task 4: Geometry 1 week not assessed
Week 6 (starting 10th February)
11/02 Tuesday 11-12 11 Ray Tracing 2 Lecture Kainz
11/02 Tuesday 12-1 Ray Tracing Tutorial Tutorial Kainz, Hou, O’Sullivan
14/02 Friday 4-5 12 Splines 1 Lecture Kainz
14/02 Friday 5-6 Texture Lab Lab Kainz, Hou, Schmidtke
Coursework Task 5: Colour 1 week not assessed
Week 7 (starting 18th February)
18/02 Tuesday 11-12 13 Splines 2 Lecture Kainz
18/02 Tuesday 12-1 Splines Tutorial Tutorial Kainz,  Budd, Schmidtke
21/02 Friday 4-5 14 Warping and Morphing Lecture Kainz
21/02 Friday 5-6 ray tracing lab Lab Kainz, Budd, Schmidtke, Hou
21/02 23:59 Coursework Task 6: Texture & Render to Texture 1 week assessed Kainz, Budd, Schmidtke
Week 8 (starting 24th February)
25/02 Tuesday 11-12 15 Radiosity Lecture Kainz
25/02 Tuesday 12-1 Radiosity and Raytracing Q&A Tutorial Kainz, Hou, O’Sullivan
28/02 Friday 4-5 16 Special Effects Lecture Kainz
28/02 Friday 5-6 Revision lecture Lecture Kainz
06/03 19:00 Coursework Task 7: Simple GPU ray tracing 2 weeks assessed Kainz, Hou, O’Sullivan
Week 9 (starting 4th March)
03/03 Tuesday 11-12 no lecture or lab
03/03 Tuesday 12-1 no lecture or lab
06/03 Friday 4-5 no lecture or lab
06/03 Friday 5-6 no lecture or lab
06/03 23:59 Coursework Task 7: Simple GPU ray tracing 2 weeks assessed Kainz, Hou, O’Sullivan

Coursework

There will be seven practical coursework tasks; three of them are assessed:

  1. Framework
  2. Transformations
  3. Illumination (example output 3a 3b 3c 3d) (assessed 40%)
  4. Geometry (example output 4a level 0, level 2, 4b)
  5. Colour (example output)
  6. Texture & Render to Texture (example output 6a1 6a2 6b 6c) (assessed 10%)
  7. Simple GPU ray tracing (example output 7a, 7b: 5 rays, 10 rays, 15 rays, 30 rays, 50 rays) (50%)

The individual tasks of the coursework will be implemented using a simplified framework for shader development:

The ShaderLab Framework

ShaderLab is a teaching tool to solidify the fundamentals of Computer Graphics. The ShaderLab framework is based on Qt5, CMake, OpenGL 4.0, and GLSL and allows the student to modify GLSL shaders in an IDE-like environment. The framework is able to render shaded polyhedral geometry (.off/.obj), supports image-based post-processing, and  allows to implement simple ray-tracing algorithms.

shaderlab

The ShaderLab framework is available for download on github and DoC gitlab and will be also provided on the lab machines. To execute the framework in the lab type on a command line:

cd /vol/bitbucket/bkainz


./ShaderLabFramework.sh

Highly experimental stand-alone version for Windows 10 (maybe also 7 but untested): ShaderLabFramework_installer.exe
Highly experimental stand-alone version for MacOS: ShaderLabFramework_standalone.dmg