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



  • Exercise and Programming Assignments 40%
  • Final Written Examination 60%



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




Lecture Slides

Week Lecture
1 Introduction (HTML,PDF); Colors (HTML,PDF)
2 Raytracing - Intersections (HTML,PDF)
3 Lighting (HTML,PDF)
4 Triangle Meshes (HTML,PDF)
5 Rasterizaton (HTML,PDF); 2D Transformations (HTML,PDF)
6 3D Transformations (HTML,PDF); Projections (HTML,PDF)
7 Rasterization in Detail (HTML,PDF)
8 Texture and Shadows (HTML,PDF)
9 L-Systems (HTML,PDF)
10 Procedural Modeling (HTML,PDF)
11 Bezier Curves (Part 1) (HTML,PDF)
12 Bezier Curves (Part 2) and Bezier Surfaces (HTML,PDF)
14 Outro (HTML,PDF)


Practical Session Slides

Week Lecture
1 C++ Part 1, Assignment 0 (HTML,PDF)
2 C++ Part 2, Assignment 1 (HTML,PDF)
3 Lighting, Assignment 2 (PDF)
4 Triangle Meshes, Assignment 3 (PDF)
5 OpenGL, Assignment 4 (HTML,PDF)
6 Transformations, Assignment 5 (HTML,PDF)
7 Texturing and Lighting, Assignment 6 (HTML,PDF)
8 Shadows and Cube Mapping, Assignment 7 (HTML,PDF)
9 Animating the Spaceship and Camera, Assignment 11 (HTML,PDF)


Course Moodle Page

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