Main Content

Image Synthesis (Summer Term 2023)

Competition Result
Grafik: Sebastian Lieb

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

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 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

Tutoren: 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
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

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.