## Introduction to Computer Graphics

#### Course Topics

The students study and apply fundamental algorithms for realtime rendering and geometry synthesis. They design and implement their own interactive graphics programs using the OpenGL graphics API.

#### Course Topics

This course provides an introduction to the field of Computer Graphics with a focus on image synthesis. We will first build a basic rendering pipeline that comprises the core components of modern graphics systems. During the construction of this software rendering system, we will cover the basic mathematical concepts, such as 2D and 3D transformations, examine the interaction of light with geometry to derive suitable shading models, and discuss elementary rendering algorithms, such as rasterization or visibility computations. We will then investigate how these fundamental components are integrated in current graphics processors and study the corresponding programming APIs, in particular OpenGL.

Students will experiment with modern graphics programming and build small interactive demos in OpenGL. Complemented by some theoretical exercises, these programming tasks lead to a graphics software project, where small teams of students design and implement a complete graphics application.

#### Course Objectives

At the end of the course students will be able to:

- Explain and apply the fundamental mathematical concepts computer-based image synthesis
- Implement a basic rendering pipeline based on rasterization and z-buffer visibility
- Explain the core functionalities of the OpenGL graphics API
- Develop simple graphics programs in OpenGL using shader programming
- Design and implement geometry synthesis methods based on procedural techniques
- Coordinate a team during a software project

#### Prerequisites

Some experience with C/C++/Python/Java programming is helpful.

#### Books

#### Course Moodle Page

http://moodle.epfl.ch/course/view.php?id=14159
For more details, please see the official EPFL

course webpage.