Tutor knowledgeComputer GraphicsLLM Files / Knowledge Files40 KB
Curriculum status — 2026-27 revision
CGComputer Graphics · Elective (new code not yet published). Demoted. WasCSE2215, a compulsory core course in Year 2 Quarter 2. Now one of the free electives (pick 5: 2 in Y2, 3 in Y3).
The official description below is the old one; course codes in its body are pre-2026 codes.
This course introduces computer graphics and its participants will learn about the scientific challenges and problems of image synthesis and gain working knowledge in this area. The focus will lie on rendering (the process of producing images on a screen). The course will present the foundations of image synthesis, as well as the modelling of shape and appearance of objects.
The introduced elements are often general and apply to a wide variety of topics even outside of the area of Computer Graphics. Examples include geometric representations, hierarchical structures, or projective geometry, which will also reoccur later in the curriculum in various courses. A good basis in linear algebra is important for this course.
Computer Graphics applies fundamental aspects of Computer Science (parallel programming, data structures, algorithms...).
The course will give an overview of the field, but will create links to contemporary results and research, which will offer the possibility to further deepen certain knowledge and to gain an outlook on recent trends in research.
The course will consist of about 10 lectures (2 hours each) and 9x4h practical sessions.
Initial sessions will be dedicated to background knowledge and recaps and will cover the basics of the programming language used in the course (C++).
A preliminary outline is as follows:
This course enables the student to:
During this course, the participants will receive an overview of computer graphics and gain familiarity with the field. They should be able to know the basic terms related to this domain, understand the representation of images, objects, and the image formation process, including the theory, optimizations, and underlying physical processes. Hereby, the notion of physical models will be explored with examples like material representations. Further, they will learn about the difficulties and challenges related to advanced image synthesis.
Via practical assignments and lab work, the participants will become familiar with 3D APIs and be able to reproduce parts of the course in practice. They will learn that graphics can be useful in various contexts to visualize intermediate results and data. They further learn to create their own applications. It will become evident that graphics can even serve as a means to solve problems studied in other disciplines.
Given the close link to linear algebra, students will extend their knowledge and learn to calculate with and make use of advanced concepts, namely homogeneous coordinates.
The final grade consists of two partial grades:
The final grade is computed via ROUND(0.5W + 0.5P), where ROUND is the mathematical rounding in .5 steps.
Following the TU Delft regulations, to pass the course:
Physical exam: may contain multiple-choice and/or open-ended questions. A simple calculator without programming capabilities is permitted. No course or other materials are allowed.
Physical exam with programming questions. No course or other materials are allowed.
There will be optional assignments with formative feedback.
Activity checklist - Before anything else, you should:
We only support Windows in this course. If you are running a different Operating System then we recommend that you install Windows in a Virtual Machine (VM). We also recommend a VM if you are having issues running the software on your Windows machine.
Free Windows licenses are available on Surfspot as well as steep discounts on Parallels (VM software for MacOS).
We provide a preconfigured Virtual Machine containing all required software (see VM Install Guide) for x86-64 machines. Users of Apple Silicon need to set up a VM themselves (see "Installing Windows on Linux/MacOS machines" slide of the C++ introduction lecture).
Ocean graphics from Frozen 2 - Computer Generated Image (CGI) in Frozen 2 by Walt Disney Animation Studios
Celestial bodies - Homework assignment 2: Transformations
Shaded and textured orb/knob rendered in Mitsuba - shading and texturing applied to an orb/knob; rendered in Mitsuba
Shadows in 'The Division 2' from Nvidia's HFTS presentation
A still from Big Hero 6, rendered using Hyperion ray tracer by Walt Disney Animation Studios
GLSL
Cornell Box rendered using ray tracer developed in the final project
Content related to the project can be found in this section.
The following animations were created by Tim Huisman to illustrate some concepts of the course:
Content related to procedures and content of the exam can be found here, including practice exams.
TU Delft's Computer Graphics is a 5 ECTS credit elective in the Computer Science Engineering (CSE) Bachelor's program, one of the free electives from which students pick five (two in Year 2 and three in Year 3). It assumes students have already acquired a solid foundation in programming, particularly C++, and possess a working knowledge of fundamental mathematics, including linear algebra and calculus, from earlier courses. The course is led by Dr. Elmar Eisemann and Dr. Ricardo Marroquim, whose research specializations in real-time rendering, global illumination, and scientific visualization significantly inform the course's content and pedagogical direction. Computer Graphics is not designed as an introduction to graphics software but as a rigorous, foundational exploration of the principles underlying the generation of digital images.
The central pedagogical tenet of Computer Graphics is a deep, first-principles understanding of computer graphics concepts, consciously eschewing a reliance on high-level, "black-box" graphics Application Programming Interfaces (APIs) such as OpenGL or DirectX. The course is explicitly designed to teach students "how things work from the ground up". This philosophy is predicated on the belief that proficiency in a specific, rapidly evolving API is less valuable for a computer science engineer than a durable, transferable knowledge of the underlying mathematics and algorithms. Technologies change, but the mathematical principles of transforming, lighting, and projecting 3D geometry are timeless.
This approach manifests across all aspects of the course. Lectures focus on the theoretical and mathematical derivation of graphics techniques. The mandatory lab assignments require students to implement rendering systems from scratch in C++, forcing a direct confrontation with the core mechanics of graphics generation. The final examination, in turn, rigorously tests the mathematical derivations and algorithmic logic behind these phenomena. This consistent theme reveals a deliberate strategy: to cultivate engineers who can reason about, build, and debug rendering systems, not merely operate them. The course prioritizes long-term conceptual mastery over short-term tool proficiency, a decision that defines its challenging character and academic rigor.
The formal learning objectives for Computer Graphics provide a roadmap for the knowledge and skills students are expected to acquire. A granular analysis of these objectives, however, reveals a set of interconnected competencies that blend theory, mathematics, and practical implementation.
The official study guide outlines seven primary learning objectives.
"Explain the concepts of the graphics pipeline and the ray tracing alternative": This is the foundational theoretical objective. It requires students to develop a comprehensive mental model of the two dominant paradigms in rendering. For the rasterization-based graphics pipeline, this involves understanding the sequence of stages—modeling, viewing, projection, clipping, rasterization, and fragment processing—that transform a 3D scene definition into a 2D array of pixels. For the ray tracing alternative, it requires understanding the inverse process: casting rays from the camera through pixels to determine color based on object intersections.
"Apply homogeneous coordinates and transformations": This is a core mathematical objective. It demands fluency in using 4x4 matrices to represent and perform translation, rotation, and scaling operations in 3D space. Crucially, the use of homogeneous coordinates allows for the uniform treatment of these affine transformations and perspective projection within a single matrix algebra framework. Mastery here involves not just memorizing the form of individual transformation matrices but also understanding how to compose them in the correct order to achieve a desired effect.
"Apply viewing and projection transformations": This objective is a direct and critical application of the previous one. Students must be able to construct the complete viewing transformation pipeline. This involves deriving and applying the matrices that move a 3D model from its local "model space" to a common "world space," then to "camera (or view) space" from the perspective of a virtual camera, and finally into a canonical "clip space" via a projection matrix (either orthographic or perspective).
"Explain and apply lighting and shading models": This objective bridges theory and application in the domain of surface appearance. Students must first explain the conceptual basis of local illumination models, such as the Phong and Blinn-Phong models, which approximate the interaction of light with surfaces. They must then be able to apply these models algorithmically, calculating the final color of a point on a surface given the properties of light sources (position, color), material characteristics (ambient, diffuse, specular reflectivity), and local surface geometry (surface normal, view vector).
"Explain and apply texture mapping, and bump/normal mapping": This objective focuses on techniques for adding visual detail to surfaces without increasing the underlying geometric complexity. It requires an understanding of texture coordinates (UV coordinates) and how they map a 2D image (a texture) onto a 3D surface to modulate its color. The more advanced concept of bump or normal mapping involves using a texture to perturb the surface normal vector used in lighting calculations, creating the illusion of fine-grained surface detail.
Beyond these explicitly stated goals, the structure of the course's assessment imposes a critical, unstated objective: the ability to perform rapid and accurate vector and matrix mathematics without any computational aids. The final written examination is a three-hour, closed-book assessment where calculators of any kind are strictly prohibited. Past exam papers consistently feature multi-step problems that require students to perform, by hand, a sequence of matrix multiplications, vector dot and cross products, and normalizations to solve problems in transformation, shading, and ray intersection.
The combination of mathematically intensive content and a no-calculator exam environment elevates the course's difficulty. Success becomes contingent not only on a conceptual understanding of the graphics algorithms but also on achieving a high degree of procedural fluency and accuracy in the underlying linear algebra. This de facto requirement is a significant source of the course's reputation for being challenging. It distinguishes Computer Graphics from courses that may cover similar topics but permit reliance on software or calculators for the mechanical calculations, thereby shifting the focus to pure algorithmic implementation. In Computer Graphics, the mathematical execution is as much a part of the test as the conceptual understanding.
| Learning Objective | Relevant Lecture Week(s) | Textbook Chapters (Shirley et al.) | Lab Assignment Component | Typical Exam Question Type |
|---|---|---|---|---|
| Explain graphics pipeline & ray tracing | 1, 5, 6 | 1, 2, 4, 10 | N/A (Conceptual underpinning for both labs) | "Explain the stages of the graphics pipeline." "Compare and contrast rasterization and ray tracing." |
| Apply homogeneous coordinates & transformations | 2 | 6 | Rasterizer Lab: Implementing model, view, and projection matrix transformations. | "Construct the matrix to rotate an object by 90∘ around the y-axis, then translate it." |
| Apply viewing & projection transformations | 3 | 7 | Rasterizer Lab: Implementing the full viewing pipeline from world to screen space. | "Given camera parameters, derive the view matrix." "Calculate the screen coordinates of a 3D point." |
| Explain & apply lighting & shading models | 4 | 5, 10 | Rasterizer Lab: Implementing Phong shading per-vertex or per-fragment. | "Calculate the color of a point P using the Phong model, given light, material, and view parameters." |
| Explain & apply texture & bump/normal mapping |
The course unfolds over an eight-week period, with each week building thematically on the last. The primary textbook is "Fundamentals of Computer Graphics" by Shirley et al., which serves as the main reference for the theoretical content. The typical weekly progression provides a structured journey through the core concepts of rendering.
Week 1: Introduction & Mathematical Foundations
Topics: This week establishes the course's context with a history of computer graphics, an overview of the field, and fundamental concepts like image representation (pixels, resolution, color depth). Most critically, it includes a dedicated review of the prerequisite mathematics: vector algebra (dot and cross products, normalization) and linear algebra (matrix operations).
Analysis: The explicit focus on refreshing mathematical fundamentals in the very first week is a clear signal of their central importance throughout the course. This directly addresses the known difficulty students face with the mathematical demands of the material and sets the expectation that fluency in these operations is non-negotiable.
Week 2: Transformations
Topics: The curriculum delves into the mathematical heart of manipulating 3D objects. This includes 2D and 3D transformations (translation, rotation, scaling), the introduction of homogeneous coordinates to unify these operations, and the critical concept of composing transformations through matrix multiplication.
Analysis: This is a mathematically dense week that directly addresses Learning Objective S_S5. It often represents the first significant conceptual and computational hurdle for students. A failure to achieve complete mastery of matrix composition and application during this week will have cascading negative effects, as nearly every subsequent topic, particularly viewing and shading, relies on this foundation.
Week 3: Viewing
Topics: This week applies the abstract transformations from Week 2 to the concrete problem of creating an image from a specific viewpoint. It covers the full viewing pipeline, including the construction of the view matrix (to position and orient the virtual camera) and the projection matrix (orthographic and perspective) to map the 3D scene into a 2D viewing plane.
The mandatory programming assignments are the primary vehicle for applied learning in Computer Graphics, serving to translate abstract theory into tangible, functional code.
The assignments are to be completed in C++. To streamline the development process, the course provides a custom C++ framework. This framework handles the "boilerplate" aspects of a graphics application, such as creating a window, handling user input, and reading/writing image files. This abstraction is purposeful; it allows students to focus their efforts exclusively on implementing the core graphics algorithms that are the subject of the course, rather than getting bogged down in platform-specific APIs for window management. This design choice is in perfect alignment with the course's "fundamentals over frameworks" philosophy.
The practical work is typically divided into two major assignments, which together guide students through the process of building two different types of renderers from the ground up.
Part 1: The Rasterizer: In this assignment, students implement key stages of the rasterization-based graphics pipeline. This involves writing code to perform matrix transformations (model, view, projection), implement a triangle rasterizer using scan-conversion and barycentric coordinates, and apply a local illumination model like Phong shading on a per-fragment basis.
Part 2: The Ray Tracer: For the second assignment, students build a complete, albeit basic, ray tracing engine. This requires implementing functionality to generate primary rays from the camera, calculate the intersection of these rays with geometric primitives (spheres, triangles), and implement recursive ray casting to simulate shadows and mirror-like reflections.
These assignments are mandatory and contribute a significant portion (typically 20-30%) to the final course grade, with the final exam constituting the rest. A passing grade on the lab work is a prerequisite for passing the course.
The lab assignments are far more than a simple practical exercise; they function as an indispensable form of "procedural studying" for the final examination. The act of implementing, and more importantly, debugging a graphics algorithm forces a level of detailed understanding that passive learning from lectures or a textbook cannot replicate.
The connection between the labs and the exam is direct and profound. The labs require students to translate the very same mathematical formulas and algorithms from the lectures into functional code. For example, to implement Phong shading in the rasterizer lab, a student must code the dot product calculations between the normal, light, view, and halfway vectors. To implement the viewing pipeline, they must correctly construct and multiply the transformation matrices.
When this code inevitably fails to work correctly—producing a black screen, incorrect colors, or distorted geometry—the student is forced to debug. This debugging process involves mentally (or with a debugger) tracing the execution of the algorithm step-by-step, checking the intermediate values of vectors and matrices. This act of manually tracing the mathematics is, in effect, a rehearsal of the exact mental and mathematical processes required to solve problems on the final exam. The exam requires performing these same procedures by hand, under time pressure, and without a calculator.
Therefore, students who diligently complete and debug their lab assignments are not just earning points for the practical component; they are building the "muscle memory" for the mathematics. The struggle to find a bug in a transformation matrix implementation directly strengthens one's ability to perform that same matrix multiplication correctly on paper during the exam. Conversely, a student who struggles to complete the labs is receiving a direct and unambiguous warning of their unpreparedness for the exam's calculation-based questions. This causal link between lab performance and exam readiness is arguably the single most important strategic consideration for any student enrolled in Computer Graphics.
The final written examination is the capstone assessment for Computer Graphics, carrying the majority of the weight for the final grade and serving as the ultimate test of a student's mastery of the course material. A deep analysis of its structure, constraints, and historical content reveals a predictable pattern that can be leveraged for strategic preparation.
The examination is a formidable assessment governed by strict rules:
Duration: 3 hours (180 minutes).
Format: Closed book. No notes, textbooks, or cheat sheets of any kind are permitted.
Critical Constraint: No calculators, graphical or otherwise, are allowed. This is the single most defining feature of the exam. It transforms the assessment from a test of conceptual knowledge into a test of both conceptual knowledge and computational proficiency. All calculations, from matrix multiplications to vector normalizations, must be performed manually.
Grading: The exam typically constitutes 70-80% of the final course grade. A minimum grade of 5.0 out of 10 on the final exam is required to pass the course, regardless of the student's performance on the lab assignments.
A portion of the exam is dedicated to testing theoretical understanding. These questions typically take the form of "Explain...", "Describe the algorithm for...", or "What are the advantages and disadvantages of...". Examples from past examinations include explaining the different stages of the graphics pipeline, describing the purpose of homogeneous coordinates, comparing and contrasting Phong shading with Gouraud shading, or explaining the phenomenon of aliasing. While these questions may not carry as many points as the large calculation problems, they require precise, clear, and complete explanations. Success on these questions depends on a solid understanding of the concepts presented in the lectures and textbook.
This is the most heavily weighted part of the examination, where students must apply their knowledge to solve concrete numerical problems. Analysis of past exams reveals several recurring problem archetypes.
Archetype 1: Transformations & Viewing
Problem Statement: A typical problem provides the vertices of a 3D object, the parameters of a virtual camera (e.g., position, look-at point, up-vector), and projection parameters (e.g., field of view, aspect ratio, near/far planes). The student is asked to compute the final 2D screen coordinates of a specific vertex.
Required Skills: This requires a systematic, multi-step process. The student must:
Construct the individual model, view, and projection matrices (Mmodel, V, P).
Compose them in the correct order to form the final Model-View-Projection matrix: MMVP=P⋅V⋅Mmodel. This step involves several 4x4 matrix multiplications.
Transform the given 3D vertex (in homogeneous coordinates) by this matrix: vclip=MMVP⋅vmodel.
Perform the perspective divide by dividing the x, y, and z components of vclip by its w component to get Normalized Device Coordinates (NDC).
Map the NDC coordinates to the final screen pixel coordinates.
Archetype 2: Lighting & Shading
Problem Statement: A problem will describe a point on a surface, providing its position, its normal vector, and the material properties of the surface (e.g., ambient (ka), diffuse (kd), and specular (ks) coefficients, and the specular exponent α). It will also provide the parameters of one or more light sources (position, color) and the position of the camera. The task is to calculate the final color of that point using the Phong or Blinn-Phong illumination model.
A quantitative analysis of the distribution of marks in past examinations from 2021 to 2023 reveals a highly consistent and predictable pattern. By categorizing each question from available past papers and their corresponding point values, it is possible to determine the average weighting allocated to each major topic.
This data-driven analysis demonstrates that a small number of core topics consistently constitute the vast majority of the total marks. Specifically, the three pillars of the course—Transformations & Viewing, Shading & Lighting, and Ray Tracing—routinely account for 60% to 75% of the points available on the final exam. This empirical evidence allows for a highly strategic approach to exam preparation. Rather than allocating study time evenly across all eight weeks of material, students can focus their most intense efforts on achieving deep mastery and computational speed in these high-value areas.
| Course Topic | Exam 2023 (Weighting) | Resit 2022 (Weighting) | Exam 2022 (Weighting) | Average Weighting |
|---|---|---|---|---|
| Transformations & Viewing | 28% | 25% | 30% | 27.7% |
| Shading & Lighting | 22% | 25% | 20% | 22.3% |
| Ray Tracing (Intersections) | 20% | 20% | 25% | 21.7% |
| Rasterization & Texturing | 10% | 15% | 10% | 11.7% |
| General Theory & Concepts | 15% | 10% | 10% | 11.7% |
Note: Percentages are approximated based on analysis of point distribution in available past examination papers and may vary slightly year to year.
Computer Graphics is a course with a dual identity. On the surface, it is about the principles of creating images with a computer. At its core, however, it is a rigorous course in applied mathematics. The primary intellectual challenge is not the complexity of the programming in the lab assignments, but rather the demand for mastery and rapid, accurate application of linear algebra and vector calculus under the significant constraints of a timed, closed-book, no-calculator examination. Success in Computer Graphics is not merely a function of understanding the concepts; it is a function of being able to execute the associated mathematics flawlessly by hand. This requires an integrated learning approach where lecture theory, practical lab implementation, and exam-style problem-solving are not treated as separate activities but as three facets of a single, continuous learning process.
Based on the comprehensive analysis of the course structure, content, and assessment methodology, a strategic framework for students aiming for high achievement can be formulated.
Pre-emptive Preparation: The course assumes prior knowledge. Students should ensure their C++ programming skills and, most importantly, their foundational linear algebra skills (matrix multiplication, vector operations) are strong before the course begins. Reviewing these topics in advance can prevent falling behind in the critical early weeks.
Lecture and Lab Integration: The lab assignments should be treated as the primary tool for internalizing lecture content. After a lecture on transformations, a student should immediately begin implementing the transformation pipeline in the lab. The process of debugging code is the most effective way to solidify one's understanding of the underlying mathematics.
The "By-Hand" Imperative: Given the no-calculator rule for the final exam, all mathematical exercises—whether from the textbook, tutorials, or self-generated while debugging the labs—should be completed manually on paper. This practice is essential for building the procedural fluency and speed required to complete the exam within the allotted 180 minutes.
Exam-Centric Study Prioritization: The data on exam topic weighting provides a clear directive for revision. Students should use the analysis presented in Table 2 to focus their efforts. Mastery of the "big three" archetypes—Transformations/Viewing, Lighting/Shading, and Ray-Object Intersections—is paramount, as they consistently represent the largest share of the marks. Practicing past exam papers under timed, exam-like conditions is the most effective form of final preparation.
Resource Utilization: The course is designed to be challenging, but it provides the resources to meet that challenge. Consistent attendance at lectures and tutorials, active participation in the course's Brightspace forum for clarifying doubts, and diligent use of the primary textbook for both reading and its practice problems are all critical components of a successful learning strategy.
"Explain and apply spatial data structures": This objective is primarily concerned with algorithmic efficiency, a critical consideration in computer graphics. It is most relevant to the ray tracing paradigm. Students must understand the concept and implementation of acceleration data structures, particularly Bounding Volume Hierarchies (BVHs). This includes explaining why a naive ray tracing implementation has a computational complexity that is linear in the number of objects and how a BVH can reduce this to logarithmic complexity, making it possible to render complex scenes in a reasonable amount of time.
"Implement the basic concepts in a practical assignment": This final objective explicitly links theory to practice. It is fulfilled through the mandatory C++ programming assignments. This confirms that the practical work is not an ancillary exercise but a core, integrated component of the learning process, designed to solidify the theoretical and mathematical concepts covered in lectures.
| 5 |
| 11 |
| Rasterizer Lab: Applying textures to triangles using barycentric interpolation of UVs. |
| "Explain how texture coordinates are used." "Describe the purpose of a normal map." |
| Explain & apply spatial data structures | 7 | 4.4, Appendix B.3 | Ray Tracer Lab (Optional/Advanced): Implementing a BVH to accelerate rendering. | "Explain why a BVH is needed for ray tracing." "Describe the algorithm for traversing a BVH with a ray." |
| Implement concepts in a practical assignment | 1-8 | N/A | Rasterizer Lab & Ray Tracer Lab (Core fulfillment of this objective) | N/A (Assessed via lab submissions) |
Analysis: This module translates abstract mathematics into an intuitive process. The ability to construct and combine the model, view, and projection matrices into a single transformation is a cornerstone skill. Examination questions frequently merge the topics of Week 2 and 3 into a single, comprehensive problem that traces a vertex from model space to screen space.
Week 4: Shading & Lighting
Topics: The focus shifts from geometry to radiometry—the physics of light and appearance. The week introduces the conceptual rendering equation, then simplifies it into practical local illumination models like the Phong and Blinn-Phong models. It covers different types of light sources (point, directional) and material properties (ambient, diffuse, specular). Finally, it distinguishes between shading techniques like Flat, Gouraud, and Phong shading, which determine how the lighting model is applied across a surface.
Analysis: This week requires strong 3D vector intuition. Calculating lighting involves repeated use of dot products to determine angles between vectors (e.g., light vector, normal vector, view vector) and cross products for finding normals. It corresponds to Learning Objective S_S7 and is a frequent source of complex, multi-step calculation questions on the final exam.
Week 5: Rasterization & Texturing
Topics: This week provides a detailed look at the core of the graphics pipeline. It covers fundamental rasterization algorithms, such as Bresenham's algorithm for drawing lines and the process of scan-converting triangles. A key concept introduced here is barycentric coordinates, which are used to interpolate vertex attributes (like color, normals, and texture coordinates) across the face of a triangle. This naturally leads to texture mapping for enhancing visual fidelity.
Analysis: Barycentric coordinates are a pivotal and frequently tested concept, both for their role in interpolation during rasterization and their use in ray-triangle intersection tests. Texture mapping is introduced as a powerful method for adding detail without geometric cost.
Week 6: Ray Tracing
Topics: The course introduces the alternative rendering paradigm. The curriculum covers the fundamental ray tracing algorithm: generating primary rays from the camera, performing ray-object intersection tests (specifically with planes, spheres, and triangles), and recursively spawning secondary rays for shadows, reflections, and refractions.
Analysis: This is a conceptually and mathematically intensive week. The derivation and application of parametric equations for ray-primitive intersections are central. The ray-triangle intersection test, often involving barycentric coordinates, is a classic, high-stakes problem that frequently appears on exams in a detailed, calculation-heavy format.
Week 7: Advanced Topics & Acceleration
Topics: The course moves beyond basic rendering to cover more advanced and practical topics. This includes distribution ray tracing, a technique that extends the basic algorithm to produce more realistic effects like soft shadows, depth of field, and motion blur by shooting multiple rays per pixel. The other major topic is the use of spatial data structures, specifically Bounding Volume Hierarchies (BVHs), to accelerate ray tracing.
Analysis: The focus on BVHs is critical for demonstrating how ray tracing, despite its computational expense, can be made practical for scenes with millions of polygons. This topic connects computer graphics to core computer science concepts of data structures and algorithmic complexity.
Week 8: Color & Review
Topics: The final week of instruction covers the fundamentals of color science, including human perception, color spaces like CIE XYZ and sRGB, and the concept of gamma correction. The majority of the time in this week is typically dedicated to a comprehensive review session for the final examination.
Analysis: The review session is a strategically vital component of the course. Instructors often use it to highlight the most important topics, clarify common misconceptions, and provide guidance on the style and scope of exam questions. While color science is part of the curriculum, it is less frequently tested with complex calculations compared to topics from weeks 2-7.
Required Skills: This archetype tests vector arithmetic and the application of the lighting equation. The student must:
Calculate the required vectors: the light vector (l), the view vector (v), and potentially the reflection vector (r) or halfway vector (h).
Normalize all relevant vectors (n,l,v,h). This involves calculating vector magnitudes (square roots) and dividing by them.
Calculate the necessary dot products (e.g., n⋅l, r⋅v or n⋅h).
Plug these values into the full Phong lighting equation: I=Iaka+∑iIi[kd(n⋅li)+ks(ri⋅v)α].
If multiple lights are present, perform this calculation for each light and sum the results.
Archetype 3: Ray-Object Intersection
Problem Statement: Given a ray defined by an origin O and a direction vector D, and a geometric primitive (most commonly a plane, sphere, or triangle defined by its vertices), the student must calculate if and where the ray intersects the primitive.
Required Skills: This requires setting up and solving a system of parametric equations.
For a ray-plane intersection, the student must substitute the ray equation P(t)=O+tD into the plane equation (P−A)⋅n=0 and solve for the parameter t.
For a ray-triangle intersection, the most common method tested is the Möller-Trumbore algorithm or a barycentric coordinate-based approach. This involves setting up a linear system of equations to solve for the intersection distance t and the barycentric coordinates (u,v). The intersection is valid only if t>0 and the barycentric coordinates are within the valid range. This is often considered the most mathematically challenging calculation on the exam.
| Acceleration Structures (BVH) |
| 5% |
| 5% |
| 5% |
| 5.0% |
| Total | 100% | 100% | 100% | 100% |