INFOGR Graphics
Academic year 2025/26 -- period 4

| Navigation |
|---|
|
Course Overview |
Voertaal / Instruction Language
Nederlands is de voertaal in de colleges en communicatie van deze cursus. Er wordt verwacht dat studenten Nederlands spreken. Docenten die nog Nederlands aan het leren zijn, kunnen Engels praten. Cursusmateriaal en tentamens zijn Engelstalig.
Dutch is the instruction language in the delivery and communications of this course. Students are expected to speak Dutch. Teachers who are still learning Dutch, may speak English instead. Course materials and exams will be in English.
Prerequisites
Math: 2D Geometry and Algebra, equivalent to 'vwo Wiskunde B' in Dutch secondary education. This course includes a quick recap of these topics but prior knowledge is expected.
Programming: Ideally in C#, for example from the courses INFOB1GP or INFOIMP. This course requires that you can already program fluently. This course does not teach any programming. During this course there is not enough time to learn the necessary programming.
Course Overview
Course: "Graphics" is an introductory course about computer graphics. Computer graphics deals with the algorithmic processing of visual (images) and spatial (geometry) data. The course will focus on the very basics of modeling and rendering, i.e., the mathematical description of three-dimensional scenes and how to create (realistic) images of such models.
Rendering Algorithms: We have several options to convert the mathematical representation of a virtual world into a digital image. In this course we will focus on ray tracing. Ray tracing allows us to produce 'correct' images. An alternative approach is rasterization. Video games typically rely on rasterization to render images in real-time. In this course we will explore rasterization only briefly.
Math: An important aspect of computer graphics is the use of mathematics. This course provides a short coverage of the mathematical basics needed for rendering. We will introduce fundamental concepts of linear algebra and other areas of higher mathematics that are important far beyond the field of graphics.
The information on this website is static; announcements and discussions will be on Microsoft Teams. Please join the Team using the code that you can find on Brightspace.
This course takes place offline only, in person. Please join us on campus! We expect that most of our communication will be offline during the lectures and tutorial sessions. Please use Teams as a way to interact with each other and with us, but we may not be able to respond quickly to Teams questions.
Teaching Team
Lecturers: (email both of us if you have a personal question that cannot be asked in Teams)
- Peter Vangorp (p.vangorp@uu.nl)
- Tamara Mchedlidze (t.mtsentlintze@uu.nl)
Student Assistants:
- Benjamin Blankers
- Jesse Bosman
- Lukas van Buren
- Lars Lakerveld
- Dide van Lubek
- Iris Scheepstra
- Maiko van der Veen
Teaching Assistants:
- Victor Stenvers
- Ethan Waterink
Extensions and Exceptions
If you need to skip or postpone a deadline or an exam for any reason (e.g., health, family), the Education and Examination Regulations (EER) (degree-specific appendices) describe the following procedure:
Send an email to your study advisor, cc: the course coordinator (p.vangorp@uu.nl), as early as possible. This email should contain the following information:
- Your name and student number
- The affected course
- The date and time of the affected exam or assignment deadline
- Brief reason (no sensitive details needed in this initial email)
- Your specific request, e.g., N days extension, or skip and do the retake
- Ask the study advisor to send their recommendation to the course coordinator directly. (Your study advisor may not be aware of this step in the procedure!)
If necessary, the study advisor may discuss sensitive details with you in confidence. The course coordinator will confirm the outcome.
You are not automatically eligible for a retake if you miss a deadline or exam without following the correct procedure.
Topics
| Mathematics (50%) | Graphics (50%) |
|
Linear algebra
Projective geometry
Geometric modeling
|
Ray tracing
Rasterization
|
This list is intended to give a rough orientation; topics are subject to change.
Tentative Schedule
| Week | Date | Time & Location | Lecture | Tutorial | Practical |
|---|---|---|---|---|---|
| 17 | Tue Apr 21 | 9:00-10:45 Ruppert BLAUW | Introduction Math: Vectors | ||
| 11:00-12:45 BBG 201, 209, 083, 001 | Math: Vectors | ||||
| Thu Apr 23 | 13:15-15:00 Ruppert BLAUW | Math: 2D Geometry | |||
| 15:15-17:00 Ruppert BLAUW | Math: 2D Geometry | ||||
| 18 | Tue Apr 28 | 9:00-10:45 Ruppert BLAUW | Math: 3D Geometry | ||
| 11:00-12:45 Minnaert Learning Plaza (overflow: BBG 201, 209) | Math: 3D Geometry | ||||
| Thu Apr 30 | 13:15-15:00 Ruppert BLAUW | Graphics: Ray Tracing | Practical Assignment | ||
| 15:15-17:00 Ruppert BLAUW | Math: Exam Preparation | ||||
| 19 | Tue May 5 | Liberation Day | |||
| Thu May 7 | 13:30-15:30 Educatorium GAMMA | Math Midterm Exam | |||
| 20 | Tue May 12 | 9:00-10:45 Ruppert BLAUW | Graphics: Shadows & Shading | ||
| Thu May 14 | Ascension | ||||
| 21 | Tue May 19 | 9:00-10:45 Ruppert BLAUW | Graphics: Reflection & Refraction | ||
| Thu May 21 | 13:15-15:00 Ruppert BLAUW | Graphics: Texturing | |||
| 15:15-17:00 Ruppert C | Math Midterm Exam review (optional) | ||||
| 22 | Tue May 26 | 9:00-10:45 Ruppert BLAUW | Math: Matrices | ||
| 11:00-12:45 Minnaert Learning Plaza (overflow: BBG 201, 209) | Math: Matrices | ||||
| Thu May 28 | 13:15-15:00 Ruppert BLAUW | Math: Transformations | |||
| 15:15-17:00 Ruppert BLAUW | Math: Transformations | ||||
| 23 | Tue Jun 2 | 9:00-10:45 Ruppert BLAUW | Graphics: Scene Graph | ||
| 11:00-12:45 Minnaert Learning Plaza (overflow: BBG 201, 209) | Math: Exam Preparation | ||||
| Thu Jun 4 | 13:30-15:30 Educatorium BETA, Ruppert 038 | Math Final Exam | |||
| 24 | Tue Jun 9 | 9:00-10:45 Ruppert BLAUW | Graphics: Advanced Ray Tracing | ||
| Thu Jun 11 | 13:15-15:00 Ruppert BLAUW | Graphics: Rasterization | |||
| 25 | Tue Jun 16 | 9:00-10:45 Ruppert BLAUW | Graphics: OpenGL | Practical Assignment Submission Wed Jun 17, 17:00 | |
| Thu Jun 18 | 13:15-15:00 Ruppert BLAUW | Graphics: Shaders | |||
| 15:15-17:00 Ruppert BLAUW | Graphics: Exam Preparation | ||||
| Ruppert WIT | Math Final Exam review (optional) | ||||
| 26 | Thu Jun 25 | 13:30-15:30 Olympos HAL1 | Graphics Theory Exam | ||
| 28 | Thu Jul 9 | 13:30-15:30 Educatorium GAMMA | Math/Graphics Retake Exam | ||
TODO: Double-check schedule.
Math Tutorials & Exams
Math Tutorials
There will be math exercises during a number of weeks. The exercises cover the topics discussed in the math lectures. We highly recommend that you work on all the exercises as we put a special effort to make sure they prepare you well for the exam.
Important Rules
- You are supposed to work alone on the exercises, for the reason that they prepare you for the exam, which is also individual.
- As much as possible, you are expected to prepare the solution for the exercises before the tutorial session. So, for example, before the tutorial session on Vectors you should have finished as many exercises on Vectors as you can with your prior math knowledge.
- Presence at the Math tutorial sessions (certain Tuesdays and Thursdays, immediately after the lecture) is mandatory, as solutions for a selection of exercises will be discussed and you will get a chance to ask questions.
- Please use the Teams channel "Math Tutorials" to ask questions about the exercises but only do this in two cases:
- if for some good reason you were not able to attend the corresponding Math tutorial session, or
- if you don't understand the question of the exercise.
Make sure your question is concise and suitably specific. We cannot help you if you just state ‘I do not understand this exercise’.
Math Tutorial Solutions
We will not provide solution sheets for the Math tutorial exercises. There are several other ways to check your answers: ask in the next tutorial session, ask on Teams, confirm with a check calculation, ask Wolfram Alpha, or compare with classmates. Each of those ways is an opportunity to learn more math/tools/skills. At the exam, the only way to check your answer is to confirm it with a check calculation. We will show you examples of check calculations during the tutorial sessions.
Math Exams
The exams will take place on campus, digitally, on university computers, using the Remindo system. Bring a pen/pencil so you can sketch geometry questions or do calculations on paper. You're allowed to bring a simple calculator that cannot draw graphs, solve equations, or do matrix/vector math. Remindo also has a simple calculator built in.
Graphics Practical Assignment & Theory Exam
Practical Assignment
There will be one practical assignment, covering ray tracing and associated algorithms. A suggested programming template will be available. We recommend that you start familiarizing yourself with it right away.
Important Rules
Because of the large group of students taking this course, we need strict rules to keep everything manageable.
- Please use the Teams channel "Practical Assignment" to ask questions about the practical assignment.
- There are no in-person support sessions planned. Feel free to ask a teaching team member for in-person support if you need it.
- Working in groups: The programming assignment is designed for groups of three students. You may however also work on the assignment in a group of two or alone. Details:
- Working in a group of two or alone: There is no penalty for working in a group of two or alone on the assignment, but you will be expected to complete the same amount of work as a three-person group. It is however not allowed to work in a group of four or more students.
- Building groups: You can choose your group members yourself among your classmates. If you cannot find group members yourself, ask on the Teams channel "Finding Group Members" or during the tutorial sessions. We will help you to form a group with other students.
- If a group member drops the course: This is a risk of working in groups. You may continue working with the materials that you produced together. However, you cannot continue working on these materials with a new group member.
- Project group responsibilities: It is up to you how you split the work among your group members. However, this freedom comes at the price that you have to be prepared for situations such as group members dropping the course or not delivering what they promised to you. It is your responsibility to make sure that you are aware of your group's progress, so you can react to such issues in an appropriate way.
- Plagiarism:
- We use an automated plagiarism detection system. We must always report suspected plagiarism to the exam board. Confirmed plagiarism may have severe consequences.
- Do not store or share your projects publicly, e.g., in a public GitHub repository. If your code is found and used by another group, you may be complicit in their plagiarism and also face consequences. Sharing ideas is fine, of course.
- We recognize the value of AI assistive technologies for programming such as ChatGPT or Copilot to understand and improve code. However, such tools tend to produce code that they have copied ("learned") from online sources. If that's more than a few lines of code, that will likely be detected as plagiarism and will be treated as such.
Soft-/Hardware and Infrastructure
- Required equipment: You need a Windows PC with Visual Studio. The free Community Edition of Visual Studio is a good platform for C# development. The programming template uses the open-source OpenTK library to show the rendered image on screen. OpenTK also offers many convenient vector/matrix math functions.
- Alternative platforms: Support will be mostly limited to Microsoft Windows and C#. You may of course use alternative platforms and programming languages (to be agreed in advance with the course coordinator on an individual basis), but an appropriate level of autonomy is expected in that case.
Graphics Theory Exam
The exam will take place on campus, digitally, on university computers, using the Remindo system. Bring a pen/pencil so you can sketch, organize your thoughts, or do calculations on paper. You don't need a calculator for this exam.
Grading
Programming assignment: There will be one programming assignment for which you will receive a grade GP.
Exams: There will be two math exams with grades M1 and M2. The final grade M for your math exams is calculated as follows: M = 0.3*M1 + 0.7*M2. M must be at least 5.5 (before rounding) to pass the course.
There will be one graphics theory exam with a grade GT. The final grade G for your graphics practical and theory combined, is calculated as follows: G = 0.4*GT + 0.6*GP. G must be at least 5.5 (before rounding) to pass the course.
Final grade: If both M and G meet the requirements above, the final grade for the course is (M + G) / 2. Your final grade must be at least 6 (after rounding) to pass the course.
Retakes
You are entitled to participate in one retake if:
- you participated in all graded assignments and exams and your final grade was at least 4.0 but less than 6 (after rounding); or
- you missed 1 graded assignment or exam and you obtained an exception by following the extension procedure.
This can either be a retake assignment or a retake exam. Criteria for passing stay the same as indicated above.
Retake final math exam (M2): This retake exam will cover all math lectures and tutorials.
Retake graphics theory exam (GT): This retake exam will cover all graphics theory lectures.
Retake practical assignment (GP): This retake assignment must be made individually, not as a group.
Transfers from a previous year
If you are repeating this course it may be possible to transfer only your previous practical assignment grade to this academic year. Contact the course coordinator to request this. You must always redo all the exams.
Literature & Links
Textbook
The textbook of this course is Fundamentals of Computer Graphics by Peter Shirley et al. The course is designed based on the 3rd, 4th, and 5th editions of the book. The basics (which we are covering) haven't changed much between those editions. Links: book webpage, find the 3rd edition at the UU library.
| Lecture | Book chapter(s) |
|
1, 2, 3 - Math: Vectors and 2D / 3D Geometry |
2 |
* Depending on the edition of the book, some content has moved.
Additional free online resources that might be helpful
- Interactive linear algebra book: Immersive Math
- Linear algebra tutorial videos: Essence of Linear Algebra
- Linear algebra book: 3D Math Primer for Graphics and Game Development
- Recent ray tracing tutorial: Ray Tracing in One Weekend
- Graphics and OpenGL video lectures: Introduction to Computer Graphics
- Graphics online course: Interactive 3D Graphics
- Collection of tutorials on various graphics topics: Scratchapixel
