Computer graphics
CS-341
Media
Summary
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 realtime rendering using WebGL.
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
Grading
- Homework Programming Assignments
- Project
- Final Written Examination
Prerequisites
Some experience with C/C++/Python/Java programming is helpful.Administration
| Course Number | CS-341 |
| Lecturer | Prof. Dr. Mark Pauly |
| Assistants | Michele Vidulis, Lovro Nuic, Liliane-Joy Dandy, Ekrem Fatih Yilmazer |
| Lecture | Wednesday, 15:15 - 17:00 |
| Practical | Thursday: 15:15 - 18:00 |
| Website | https://edu.epfl.ch/coursebook/fr/computer-graphics-CS-341 |
| Credits | 6 |
Contact
If you have questions regarding the course homework or projects, we encourage you to ask publicly in the Ed Discussion forum.
For questions that may contain solutions (even partial) or that don't concern other students, please use the Private mode available on Ed.
17 February - 23 February
- Homework 1 (RT1): Collisions with Planes and Cylinders - Handout (File)
- Homework 1 (RT1): Collisions with Planes and Cylinders - Reference Images (File)
- Homework 2 (RT2): Lighting and Light Rays - Handout (File)
- Lecture Slides - 3 - Lighting Local (File)
- Lecture Slides - 3 - Lighting Global (File)
- Homework 3 (GL1): Geometric Transforms in the GPU Pipeline - Handout (File)
- Lecture Slides - 4A - Rendering Pipeline (File)
- Lecture Slides - 4B - Transformations (File)
- Lecture Slides - 4C - Viewing (File)
- Homework 4 (GL2): Meshes in the GPU Pipeline – Handout (File)
- Lecture Slides - 5A - Meshes (File)
- Lecture Slides - 5B - Rasterization (File)
- Homework 5 (GL3): Textures, Reflections, and Shadows – Handout (File)
- Lecture Slides - 6A - Textures (File)
- Lecture Slides - 6A - Textures II (File)
- Lecture Slides - 6B - Shadows (File)
31 March - 6 April
- Homework 6 (PG1) - Perlin Noise and Procedural Terrain - Handout (File)
- Lecture Slides - 7A - Procedural Modeling (File)
- Lecture Slides - 7B - Fractals (File)
- Project Instructions (URL)
- Project Framework (File)
- Project Framework Documentation (URL)
- Project Proposal Template (File)
- Lecture Slides - 8 - Advanced Methods (File)
- Lecture Slides - 8 - Project deck (File)
- Lecture Slides - 10 - Freeform Curves (File)
- Lectures Slides - 10 - Freeform curves (II) (File)
- Milestone Report Template (File)
- Lecture Slides - 11 - Freeform Surfaces (I) (File)
- Lecture Slides - 11 - Freeform Surfaces (II) (File)
- Lecture Slides - 12 - Character Animation (I) (File)
- Lecture Slides - 12 - Character Animation (II) (File)
- Instructions for Frame-by-Frame Video Recording (URL)
- Final Report Template (File)
- Exam 2023 (File)
- Exam 2024 (File)
- Lecture 21/05/25 - Exam Review (URL)