Computer Graphics Laboratory ETH Zurich


Computer Graphics - AS10 - Home

Description Description | Administration

This is the webpage for the course 252-0543-01L "Computer Graphics" fall semester 2010.


  • 18.Nov.2010: The rendering competition presentations will be held on Dez. 21st from 08:15 to 10:00 in CAB G 56.
  • 18.Nov.2010: Added photon mapping base code (see below).
  • There is a bug fix for string_conversions.h of the framework. See page 'Homework'.


This course covers some of the fundamental concepts of computer graphics. The three main parts of the class are rendering, modeling, and animation. In the first part, we will discuss the basics of photorealistic image synthesis, i.e. how to generate a realistic image from a digital representation of a 3D scene. After introducing raytracing, we will briefly look at the physics of light transport, discuss the rendering equation, and investigate some advanced techniques to enhance the realism of rendered images. The second part will introduce the basics of modeling with curves and surfaces. We will discuss Bezier curves and surfaces, B-Splines and NURBS, and show how they can be used to design complex 3D geometry. In the third part, we focus on computer-generated character animation and introduce some of the core techniques used in animation for feature films and games. We will discuss basic principles of character animation, techniques to augment a digital character with controls to deform it into different poses, and methods to set the control values over time in order to create movement.

Course Objectives

At the end of the course you will be able to design and implement a rendering system based on raytracing. You will study the basic principles of modeling with splines and integrate spline-based representations into a rendering system. You will also become familiar with central concepts in animation. In addition we want to stimulate your curiosity to explore the field of computer graphics on your own or in future courses.

Course Forum

Use the course forum (powered by VIS) for posting (and answering) questions. Problems that you encounter might also be relevant for other people and if you have an answer it would be great if you can share this with the rest of the class. We might also post comments to the exercises to the forum, so it would be good if you'd check frequently.

Please also use the forum to look for partners for the exercises. From last year's experience, we strongly recommend that you try to find a partner if you havn't done so already. It's more fun to work in a team and even if you feel confident that you can do the work on your own, it often helps to cooperate in a team to develop communication and organizational skills.

Course Topics

Part I - Rendering
Raytracing for Image Synthesis, Ray-surface intersections, Recursive raytracing, Acceleration data structures, Shading Models, BRDFS, Rendering Equation, Texturing, Monte-Carlo Raytracing, Advanced Rendering Effects

Part II - Modeling
Bezier and B-Spline curves, Tensorproduct Surfaces, NURBS

Part III - Animation
Principles of character animation, Character rigging, Forward and inverse kinematics, Keyframe animation, Motion capture, Physics-based character animation


Programming project
During the duration of the course you will implement a 3D renderer that will allow you to create realistic images using raytracing. This project will follow step-by-step the material presented in class and you will incrementally add functionality to your program and thus more realism to your images. Once the basic functionality is implemented, you are encouraged to extend your program to achieve some advanced effects, and play around with interesting scene compositions to generate exciting images. At the end of the semester the three best images will be selected for prizes depending on technical achievement and artistic quality.

General Remarks and late policy
Assignments will be handed out every second week and will be discussed in the exercise class. Each exercise has a fixed due date at which all the required material has to be handed in. The ONLY exceptions for late submission are military service or illness, both of which require written proof.

There will be a 1-hour written midterm exam. No additional material is allowed during the exam.

There will be a 2-hour written exam covering the topics from the excercises and the ones discussed in class. No additional material is allowed during the exam.


Fundamentals of calculus and linear algebra, basic concepts of algorithms and data structures, basic programming skills in C++, Visual Computing core course recommended

Description | Administration

Administration Description | Administration
Number 252-0543-01L
Lecturers Dr. Wojciech Jarosz
Dr. Alexander Hornung
Dr. Ilya Baran
Prof. Dr. Markus Gross
Assistants Marcel Germann, Steven Poulakos, Cengiz Oeztireli
Course Location Tuesday 09-10, CAB G 56
Friday 10-12, CAB G 51
Exercise Location Friday 14-16, CAB G 59
Q&A Tuesday 10-12, CHN G 22
ECTS Credits 6 credits
Midterm Exam 60 min, written (English!)
Exam 120 min, written (English!)