The goal of this course is to create a foundation (theory and programming) for understanding the current and future technology underlying computer graphics. Our intention is to create a synergistic mixture of theory and practice. The first part of the class begins with introductory lectures into the mathematical fundamentals and workshops in programming 3D graphics. In the second half of the semester, the class moves to current state of the art methods which are presented by the students. Examples of typical subjects which will be covered are:
3D lighting & effects
Real time rendering
Advanced applications and systems
Table of contents
Introduction to computer graphics and OpenGL
Transformations: Translation, Rotation, Scaling
Parallel, oblique, and perspective Projections
Line and surface representations
Hermite and Bezier modeling
Diffuse and Specular Shading
Hidden surface removal
High performance rendering algorithms
Important research directions (e.g. SIGGRAPH, ACM TOG)
The student must be fluent in C/C++ programming.
At the end of the Computer Graphics course, the student should be able to
understand the theoretical/mathematical fundamentals in computer graphics
understand the programming fundamentals in computer graphics
understand the current strengths and weaknesses of 3D graphics algorithms
have insight into ray tracing algorithms
have insight into illumination and rendering
have insight into interactive line and surface models
have insight into high performance computer graphics software systems
have insight into theoretical and practical problems in computer graphics
build a computer graphics program
The most updated version of the timetables can be found on the students' website and the main course website (link at the bottom of this webpage below):
You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudyMap will automatically be displayed in MyTimeTable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.
MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).
For more information, watch the video or go the the 'help-page' in MyTimetable. Please note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.
Mode of instruction
lectures seminar student discussions presentations software assignments
The final grade will depend on student's participation in discussions/presentations, programming assignments and the final project.
All necessary educational materials are supplied digitally.
Optional reading: Computer Graphics Using Open GL by F. S. Hill, Jr. (Prentice-Hall, 2001 or later, ISBN: 0-02-354856-8) 2006 – 3rd Edition: ISBN-13: 978-0131496705
Research papers from recent ACM conferences and journals on computer graphics
From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudyMap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.
Please note that it is compulsory to register for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course.
Extensive FAQ on MyStudymap can be found here.
Onderwijscoördinator Informatica, Education coordinator LIACS bachelors
Attendance is mandatory (for special situations, please consult with the teacher). Absence (without permission beforehand) will result in not passing the course.