Introduction to Computer Graphics

Official course webpage


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.


Course Topics

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.


Course Objectives

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.




Lecture Slides

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)
6 3D Transformations (HTML,PDF); Projections (HTML,PDF)
7 Rasterization (HTML,PDF)
8 Texture and Shadows (HTML,PDF)
9 Fractals and L-Systems (HTML, PDF)
10 Procedural Modeling (HTML, PDF)
11 Bézier Curves (HTML, PDF)


Practical Session Slides

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)
5 No practical session (exam)
6 Transformations, Assignment 5 (HTML)
7 OpenGL Texturing and Lighting, Assignment 6 (HTML, PDF)
8 Shadows and Cube Mapping (HTML, PDF)
9 Procedural Noise (HTML)


Information About the Final Project


Course Moodle Page

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