Main Content

Image Synthesis (Summer Term 2024)

Competition Result
Grafik: Sebastian Lieb

Lecturer: Prof. Dr. Thorsten Thormählen
Module name: CS 681
Language of lecture: English

This module will not be offered in the summer term 2025 due to a planned research sabbatical.

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 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 as well as special ray tracing acceleration hardware. The lecture covers technologies, 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 the 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 is trained by practical examples. In addition, the course aims at improving the overall ability of the participants to perform scientific work, solve problems, and 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 first 6 episodes of the Video Tutorials on Shader Programming  (see below) can serve as a refresher for the basics.


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

Tutor: Sebastian Lieb

Course Structure

  1. Introduction
  2. Ray Tracing
  3. Light Transport
  4. CUDA
  5. 3D modeling
  6. Volume rendering

Lecture Slides

The lecture slides are available as HTML5 websites. It is recommended to use a modern browser (such as Google Chrome, Mozilla Firefox). In Google Chrome, the browser's print function can be used to create a PDF file of the slides.

There are two versions of the slides: internal and external. The internal version comprises additional slides that are only available to the students of the University of Marburg. The login will be announced in the lecture.

Part Chapter Link
1. Introduction 1.1 Introduction and Organization external, internal
2. Ray Tracing Basics 2.1 Vulkan Ray Tracing Pipeline external, internal
2.2 Intersection Shader external, internal
3. Light Transport 3.1 Rendering Equation external, internal
3.2 Path Tracing external, internal
3.3 PBR Materials external, internal
3.4 Image-based Lighting external, internal
4. CUDA 4.1 Introduction to CUDA
4.2 Programming with CUDA
4.3 Efficient parallel algorithms

Exercise Class

Registration for the exercise class and submission of the assignments is done via the ILIAS learning platform.

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.

Video Tutorials on Shader Programming

In the winter semester 2021 we started recording videos on shader programming. The first videos in this series can be used to refresh the material covered in the Graphics Programming lecture. Some later videos in this series are also directly related to the content of this lecture.