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 Microsoft Teams.

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 Friday, November 13th.

Session Tutor
Mon 16-18 Erik Johnson
Tue 14-16 Ömercan Yazici
Fri 14-16 Hugo Devillers
Fri 16-18 Joschua Loth

Location: Online, Microsoft Teams

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.

Grading

10% Rendering Competition
0% Mid-term exam
40% Assignments
50% Final exam

Course Schedule

Date Lecture - Instructor Resources
02.11.2020 No lecture
05.11.2020 Introduction
09.11.2020 Introduction to Ray Tracing
12.11.2020 Spatial Index Structures I
16.11.2020 (external) Digital Reality: Using AI to Optimize and Validate AI

Perspektiven der Informatik - Slusallek

19.11.2020 Spatial Index Structures II
23.11.2020 Transformations
26.11.2020 Light Transport
30.11.2020 Material Models
03.12.2020 Texturing
07.12.2020 Spectral Analysis
10.12.2020 Sampling Theory
14.12.2020 Texture Filtering and Distribution Ray Tracing
17.12.2020 Human Vision System
Christmas Break
04.01.2021 Color
07.01.2021 Splines I
11.01.2021 Splines II
14.01.2021 Camera Transformation
18.01.2021 Clipping
21.01.2021 Rasterization
25.01.2021 OpenGL / Graphics APIs I
28.01.2021 OpenGL / Graphics APIs II
01.02.2021 OpenGL Shader Programming
Volume Rendering
04.02.2021 Wrap-up
08.02.2021 Final 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 (available online)
  • 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 (available online)

Some articles on acceleration structures:

Possible Follow-Ups

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

Zoom

We would be happy if we could create a pleasant lecture environment despite the current situation. Personal interactions, with your microphone and camera switched on, may contribute to this environment. We also encourage you to ask questions verbally. Note that this is voluntary. You may switch off both your camera and your microphone, and register under a pseudonym. Questions are still possible, in particular using the chat function.

We have decided to use Zoom as a videoconferencing service. Note that this provider (Zoom Video Communications, Inc., 55 Almaden Blvd, Suite 600, San Jose, CA 95113, USA) can access all data that you provide when registering for the video conference. If you do not provide personal data during the registration, there is still a possibility that Zoom identifies you using your IP address. We would not have decided to use Zoom if we considered this as a significant risk. As an additional precaution, we have opted to use European computing centers. Should you still have privacy concerns (and are not using an Internet Service Provider that cannot map IP addresses to your name), we suggest using an anonymization service such as Tor (https://www.torproject.org/)

You can find Zoom’s complete privacy policy at: https://zoom.us/de-de/privacy.html