Overview

This course provides the theoretical and practical foundations for computer graphics. It gives a wide overview of topics, techniques, and approaches used in various aspects of computer graphics with a focus on image synthesis and rendering, including texturing, shading, aliasing, sampling, and many more. After introducing the two basic algorithms for image synthesis, ray tracing and rasterization, it discusses the physical foundations of ray tracing in greater depth. As part of the practical exercises, the students incrementally build their own ray tracing system, which they will then use to generate a high-quality rendering for the end-of-term rendering competition.

Instructors

Teaching Assistants

Tutors

Language

English

Pre-requisites

  • Programming experience with C++
  • Basic knowledge of linear algebra and analysis

Registration

Register for the course via the LSF online system.

Mailing List

Information relevant to the course (such as updates, corrections, etc…) will be posted on the mailing list.

  1. Students registered for the course must sign up for the mailing list.
  2. Go on the webpage: https://mail.cg.uni-saarland.de/mailman/listinfo/cg1
  3. Provide your name and student e-mail address (it ends with stud.uni-saarland.de).
  4. Press the subscribe button.
  5. You will receive a message with a confirmation of the subscription.

In order to send a mail to the mailing list, use the following address: cg1 at cg.uni-saarland.de. You can ask or answer questions about the course or the assignments on this mailing list.

Tutorials

Tutorials start on Monday, November 4th.

Fri 10-12 Thu 12-14 Mon 12-14
group1 group3 group6
group2 group4 group7
group5 group9 group8
group11 groupB groupA
group12 groupE groupC
group15 group13 groupD
group16 group1A groupF
group1F group1B group14
group21 group1C group18
group27 group1E group19
group2C group23 group1D
group2F group24 group22
group34 group26 group25
  group29 group28
  group2A group2D
  group2B group33
  group2E  
  group32  
Session Tutor
Fri 10-12 Henrik Philippi
Thu 12-14 Julius Kilger
Mon 12-14 Joschua Loth

Location: E1 1, CG Chair, Room E 10

Assignments

The assignments will be posted under the course schedule. They include a mix of theoretical and programming exercises.

The paper copies for the theoretical parts of the assignments will be collected at the beginning of the lecture on the due date. The programming parts must instead be sent by email to your respective tutors. You can also send the scans of your paper copy by mail to your tutor if your are unable to attend the lecture.

The code submitted for the programming part of the assignments is required to reproduce the provided reference images, and the submission ought to include the mandatory generated images. The submission should also contain a creative image show-casing all extra-credit features that have been implemented.

The projects are expected to compile and work out of the box on the machines in the CIP-pool students’ lab in order to give the tutors a guaranty that the code will run on machines that both them and the students have access to.

Exams

Mid-term exam: 12.12.2019 08:00 - 10:00 (HS002) (sample)

Mid-term re-exam: 07.01.2020, 13:30-16h (CG Chair)

Final exam: 20.02.2020 09:00 - 12:00 (HS002) (sample)

Final re-exam: 26.03.2020, 12-14h (CG Chair)

Grading

10% Rendering Competition
20% Mid-term exam (Minimum 40% to pass)
30% Assignments
40% Final exam

ID Mid-term RC Assignments End-term Grade
2580667 71.21% 110.00% 101.76% 58.96% 2.3
2577644 54.55% 76.67% 97.65% 40.30% 3.7
2566243 36.36% 46.67% 97.30% 52.24% 3.7
2558362 57.58% 53.33% 101.06% 47.76% 3.3
2572577 50.00% 36.67% 97.06% 64.93% 3.3
2571624 46.97% 61.67% 84.25% #N/A #N/A
2581099 78.79% 50.00% 111.05% #N/A #N/A
2581307 95.45% 83.33% 115.16% 116.42% 1.0
2581261 30.30% 53.33% 102.94% 61.19% 3.3
2576732 80.30% 50.00% 95.65% 55.22% 2.7
2554373 53.03% 0.00% 88.78% #N/A #N/A
2576798 50.00% 30.00% 60.99% 54.48% 4.0
2561672 56.06% 0.00% 77.20% 33.58% 4.0
2581377 90.91% 43.33% 98.24% 89.55% 1.7
2572849 42.42% 50.00% 95.65% 44.78% 3.7
2581443 93.94% 20.00% 100.12% 113.43% 1.0
2581519 84.85% 50.00% 111.05% 93.28% 1.3
2581224 71.21% 76.67% 105.23% 37.31% 3.3
2571661 68.18% 43.33% 98.24% #N/A #N/A
2576017 45.45% 36.67% 97.06% 57.46% 3.7
2548553 59.09% 0.00% 50.29% 44.78% 5.0
2557837 31.82% 0.00% 77.20% #N/A #N/A
2577721 56.06% 46.67% 66.98% 10.45% 5.0
2543294 56.06% 76.67% 84.25% 63.43% 3.3
2569264 83.33% 143.33% 114.10% 110.45% 1.0
2553760 51.52% 0.00% 88.78% #N/A #N/A
2581488 74.24% 36.67% 86.13% 76.12% 2.7
2577665 75.76% 66.67% 100.12% 73.88% 2.0
2573629 42.42% 56.67% 97.53% 69.40% 2.7
2576701 60.61% 100.00% 103.76% 65.67% 2.3
2576016 77.27% 100.00% 103.76% 90.30% 1.3
2576022 77.27% 56.67% 97.53% 76.12% 2.0
2563573 54.55% 76.67% 97.65% 35.82% 3.7
2581226 71.21% 76.67% 105.23% 64.93% 2.3
2563814 62.12% 83.33% 91.30% 61.94% 2.7
2567261 75.76% 83.33% 91.30% 67.91% 2.3
2567356 75.76% 46.67% 97.30% 75.37% 2.3
2539193 66.67% 76.67% 106.11% 83.58% 1.7
2576780 78.79% 66.67% 94.01% #N/A #N/A
2577871 66.67% 36.67% 86.13% 55.97% 3.3

Course Schedule

Date Lecture - Instructor Slides Videos Assignments
14.10.2019 No lecture
17.10.2019 Introduction
Slusallek
pdf pdf 
21.10.2019 Introduction to Ray Tracing
Slusallek
pdf 
24.10.2019 Spatial Index Structures I
Pérard-Gayot
pdf  pdf 
28.10.2019 Spatial Index Structures II
Pérard-Gayot
pdf 
31.10.2019 Transformations
Rath
pdf  pdf  zip 
04.11.2019 Light Transport
Slusallek
pdf 
07.11.2019 Texturing
Grittmann
pdf  pdf  zip 
11.11.2019 Material Models
Slusallek
pdf 
14.11.2019 Spectral Analysis and Sampling Theory
Slusallek
pdf pdf 
18.11.2019 Texture Filtering
Slusallek
pdf  pdf  zip 
21.11.2019 Cancelled
25.11.2019 Distribution Ray Tracing
Slusallek
pdf  pdf  zip 
28.11.2019 Human Vision System
Slusallek
pdf 
02.12.2019 Color
Slusallek
pdf  pdf  zip 
05.12.2019 Color and HDR Imaging
Slusallek
09.12.2019 No lecture
12.12.2019 Mid-term exam
16.12.2019 Volume Rendering
Grittmann
pdf  pdf  zip 
19.12.2019 Rasterization
Slusallek
pdf 
06.01.2020 Camera Transformation
Slusallek
pdf  pdf  zip 
09.01.2020 Clipping
Pérard-Gayot
pdf 
13.01.2020 OpenGL / Graphics APIs I
Slusallek
pdf 
16.01.2020 OpenGL / Graphics APIs II
Pérard-Gayot
20.01.2020 GLSL / Shader Programming
Pérard-Gayot
pdf pdf  zip 
23.01.2020 Splines
Slusallek
pdf 
27.01.2020 No lecture
30.01.2020 No lecture
03.02.2020 Rendering Competition deadline
06.02.2020 Wrap-up
Slusallek
20.02.2020 End-term exam

Rendering Competition

The Rendering Competition is a final showcase of how the ray tracing engine that was developed throughout the course can be used to render interesting images. The competition rules can be found here: pdf.

This year also features a bonus BVH speed contest, which you can take part in by following the instructions in the rules sheet and downloading this zip archive.

Literature

The course does not follow a particular book, but suggested readings include:

  • Matt Pharr and Greg Humphreys, Physically Based Rendering, 3rd Edition, Morgan Kaufmann, 2016 (available online)
  • Peter Shirley, Fundamentals of Computer Graphics, 4th Edition, AK Peters, 2015
  • John Hughes et al., Computer Graphics: Principles and Practice, 3rd Edition, Addison-Wesley, 2013
  • Andrew S. Glassner, An Introduction to Ray Tracing, 1st Edition, Morgan Kaufmann, 1989, is available online

Some articles on acceleration structures:

Possible Follow-Ups

SoPra, HiWi-Jobs, Diploma, Bachelor and Master’s Thesis