Computer Graphics is concerned with rendering and synthesis of images, and comprised of the areas modeling (geometric representation and manipulation of objects and corresponding data structures), rendering (algorithms for generating pixel images from models or scene descriptions), and animation (modeling and rendering of time-varying scenes). Computer Graphics is a foundation of many highly-relevant applications in industry, such as games, movies, and (data) visualization.
The course initially introduces concepts of geometric modeling and straightforward 2D graphics, then proceeds to discuss two main classes of rendering algorithms. On one hand, rasterization allows to render complex 3D scenes in real time and is the basis for most computer games. On the other hand, ray-tracing algorithms will be discussed, which allow to generate maximally photorealistic images by relying on a physical model of light transport. These major topics are augmented by further important topics such as mathematical foundations, hardware acceleration, approximate realism, and animation.
Since applying Computer Graphics methods requires a high level of practical skill, the homework consists of small programming projects to deepen the understanding and look into the practical side of the principles and methods discussed in the course. Experimentation with modeling and rendering is a primary aspect. As a relevant practical skill, the OpenGL graphics API and shader programming for real-time graphics will be studied as part of the homework.