Main Content

Image Synthesis (Summer Term 2021)

Competition Result
Grafik: Sebastian Lieb

Lecturer: Prof. Dr. Thorsten Thormählen
Module Name: CS 681

Computer-generated images are nowadays used in a variety of applications. Some applications (such as in the production of images in the film industry, advertising, or medicine) have typically very high visual quality requirements. The lecture Image Synthesis covers methods that allow creating photo-realistic images of virtual scenes. This requires a detailed modeling and representation of the 3D scene. Furthermore, the propagation of light in the scene must be simulated using global illumination models, which is computationally expensive. However, the calculations can be easily parallelized, so many computing units can work together to produce an image. Today's graphics cards (GPUs) have many parallel processing units and the lecture covers technologies (especially CUDA), which allow efficient computing and convenient programming of these units.

Qualification objectives

 The lecture presents methods that enable the participants to create computer-generated images of high visual quality. This includes topics such as: Modeling a dynamic virtual 3D scene, free-form curves and surfaces, methods for global illumination, or rendering of volumetric data. Another objective of the course is to give participants an understanding of the architecture of current graphics cards, such that the graphics card is recognized as an extremely powerful stream processor with multiple parallel processing units that can also be used for complex calculations outside the realm of computer graphics. Parallel programming of the graphics card using CUDA is trained by practical examples. In addition, the course aims at improving the overall ability of the participants to perform scientific work, to solve problems, and to communicate.


The course requires a basic understanding of data structures, algorithms, and object-oriented programming. Furthermore, fundamental techniques of graphic programming are required, as taught in the Graphics Programming module.


The course consists of a lecture (4 hours per week) and exercises (2 hours per week).
Lecture: Tues 10h15 - 11h45, Thu 10h15 - 11h45, via Live-Stream
Exercise: Thu 12h15 - 13h45, via Live-Stream

Tutor: Sebastian Lieb

Course Structure

  1. Introduction
  2. CUDA
  3. Ray Tracing
  4. Global illumination
  5. 3D modeling
  6. Volume rendering

Lecture slides and exercise sheets

Lecture slides and exercise sheets can be found at the German version of this page.

Rendering Competition

At the end of the course, participants take part in a rendering competition. The task is to use the own ray tracer to generate a realistic image. The winners will receive a certificate and a large format print of their image.