This course covers some of the fundamental concepts of modern computer graphics. The main topics of the course are modeling and rendering. In the modeling part, we will discuss how digital 3D scenes are represented and modeled. We look at Bezier curves and surfaces, B-Splines and NURBS, as well as procedural and point-based modeling, and learn how these are used to design complex 3D geometry. In the rendering 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 global illumination principles, and investigate advanced image synthesis techniques, such as image- and video-based rendering, appearance modeling and acceleration techniques.
At the end of the course you will be able to design and evaluate a rendering system. You will study the basic principles of geometric modeling and become familiar with geometric representations and modeling algorithms. In addition we want to stimulate your curiosity to explore the field of computer graphics on your own or in future courses.
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.
The following topics will be covered through the semester. They will be interleaved with each other to provide a good balance between different fields.
Part I - Modeling
Surface Representation, Bezier Curves, Spline and B-Spline Curves, Tensor Product Surfaces, Rational Curves and Surfaces, Procedural Modeling
Part II - Rendering
Ray Tracing, Accerlation Data Structures, Shading Models, Appearance Modeling, Texturing, Rendering Equation, Image/Video-Based Rendering, Point Based Graphics
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.
There will also be several pencil and paper exercises to remind you of the knowledge you should have been familiar with and to recap the important material which will be covered during the lecture.
General Remarks and late policy
Assignments will be handed out every one or two weeks 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 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 course recommended.