GraphicsUtrecht University  Information and Computing Sciencesacademic year 2023/24 – 4th period 


Navigation 


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 threedimensional 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. Modern games typically
rely on the zbuffer algorithm. An alternative approach is
ray tracing. In this course we will explore both methods.
Ray tracing allows us to produce 'correct' images;
rasterization lets us approximate this in realtime. 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 Blackboard. This course takes place offline only,
in person. Please join us on campus! This course will be taught in English. 
Teaching Team 

Extensions and Exceptions 

Topics 


This list is intended to give a rough orientation; topics are subject to change. 
Math Tutorials & Exams 
MATH TUTORIALS There will be math assignments during a number of weeks. The exercises cover the topics discussed in the math lectures. We highly recommend that you work on all the assignments as we put a special effort to make sure they prepare you well for the exam. IMPORTANT RULES
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 another calculation, ask Wolfram Alpha, or compare with classmates. Each of those ways is an opportunity to learn more math/tools/skills. 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 Practicals 
PRACTICAL ASSIGNMENTS There will be two practical assignments, covering the two
main rendering algorithms: ray tracing (P1) and
rasterization (P2). An introduction practical (P0) that
prepares you for these assignments will be online on the
first day of the course. We recommend that you start
working on it right away. Important Rules Because of the large group of students taking this
course, we need strict rules to keep everything
manageable.




This assignment introduces basic
2D graphics, coordinate systems, and OpenTK. OpenTK allows
us to create OpenGL applications in C#. Please find the following Files
on Teams:
This assignment is all about ray
tracing. You can find all the details in the formal
assignment description. Please find the following Files
on Teams:
For this final assignment, you
will be creating a small OpenGLbased rasterizer engine.
Details are in the formal assignment description. Please find the following Files
on Teams:

Exam & Grading 
GRADING Programming assignments: There will be two programming assignments throughout the course. The final grade P for your programming assignments is the average of the two grades for the assignments: P = (P1+P2)/2. P must be at least 5.0 (before rounding) to pass the course. Exams: There will be a midterm exam T1
and a final exam T2. The final grading T for your exams is
calculated as follows: T = 0.3*T1 + 0.7*T2. T must be at
least 5.0 (before rounding) to pass the
course. Final grade: If both T (= the grade for
the exams) and P (= the programming grade) are at least
5.0, the final grade for the course is (T + P) / 2. Your
final grade must be at least 6 (after rounding) to pass
the course. RETAKES AND REQUIREMENTS You are entitled to participate in one retake if:
This can either be a retake assignment or
a retake exam. Criteria for passing stay the same as
indicated above. Retake final exam (T2): This exam will cover all lectures and tutorials. Retake practical (P1 or P2): This retake assignment can replace either P1 or P2 and must be made individually, not as a group. 
Literature & Links 
Textbook:
Additional free online resources that might be helpful:
About this course:
