The students study and apply fundamental concepts and algorithms of computer graphics for rendering, geometry synthesis, and animation. They design and implement their own graphics programs.

This course provides an introduction to the field of Computer Graphics. We will cover fundamental methods for rendering, geometric modeling, and animation. More specifically, we will discuss basic mathematical concepts, such as 2D and 3D transformations, examine the interaction of light with geometry to derive suitable shading models, study elementary rendering algorithms, such as rasterization and raytracing, and explore procedural techniques for graphics content creation. Students will experiment with modern graphics programming and build small demo programs for raytracing and real-time rendering using OpenGL.

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

- Explain and apply the fundamental mathematical concepts of computer-based image and geometry synthesis
- Implement a basic rendering pipeline based on rasterization and raytracing
- Design and implement geometry synthesis based on procedural modeling
- Integrate individual components into a complete graphics application
- Coordinate a team during a software project

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

- Interactive Computer Graphics: A Top-Down Approach with OpenGL, by Edward Angel and Dave Shreiner
- Computer Graphics: Principles and Practice (3rd Edition), by Hughes et al.

Week | Lecture |
---|---|

1 | Introduction (HTML,PDF); Colors (HTML,PDF) |

2 | Raytracing (HTML,PDF) |

3 | Lighting (HTML,PDF) |

4 | Triangle Meshes (HTML,PDF) |

5 | Rasterization (HTML,PDF); 2D Transformations (HTML,PDF) |

Week | Lecture |
---|---|

1 | CMake, IDEs, and Blender (HTML,PDF) |

2 | CPP, Assignment 1 (HTML, PDF) |

3 | Lighting, Assignment 2 (HTML, PDF) |

4 | Raytracing Meshes, Assignment 3 (HTML, PDF) |

For more details, please see the official EPFL course webpage.