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:
- Framework
- Transformations
- Illumination (example output 3a 3b 3c 3d) (assessed 40%)
- Geometry (example output 4a level 0, level 2, 4b)
- Colour (example output)
- Texture & Render to Texture (example output 6a1 6a2 6b 6c) (assessed 10%)
- 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.
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