Computer Science 385.3 Term 1, 2006 Tutorial 5 The Final Exam The Final Exam Special Notes: -This is the last week of tutorials. Any further questions can be directed by email. -The Final Exam will be held at 2:00 on December 13th. -Course Evaluations are now available! The Final Exam Tutorial Outline: (Disclaimer: This is list is by no means exhaustive! Do not assume that only the topics mentioned here will be covered on the exam!) -Final Exam Format -Matrices (Geometric Transformations/Camera Projections) -Lighting (3-Term Lighting Model/Alternate Lighting Models) -Color (Color Models/Shading) -Advanced Geometry (Splines/BSP Trees) -Physics -Choice of Halftoning or Renderman. The Final Exam Final Exam Format: The general goal of the exam is to test your understanding of the underlying concepts in graphics, not just their implementation in OpenGL. In other words, there may be some OpenGL-specific questions, but the focus of the exam will not be on remembering OpenGL callbacks. -Approximate Duration: 2 hours. Questions will be mostly short answer, with a few mathematical - mostly involving matrices. exercises The Final Exam Matrices – Geometric Transformations: Recall the definition of the ModelView matrix. It is used to determine the location of objects within a scene. Transformation matrices can be applied to ModelView matrix to move objects around the viewing position. You should know the generic matrices for the following operations: Translation; Rotation; Scaling; The Final Exam Matrices – Geometric Transformations: Translation; Rotation; 0 0 0 0 0 x 1 0 1 0 y 0 cosA -sinA 0 0 0 0 1 z 0 sinA cosA 0 0 0 Sz 0 0 0 0 0 0 0 Sx 0 1 0 0 1 0 Scaling; 1 Sy 0 0 0 0 1 -These operations can be applied repeatedly to the Model View matrix. -Order does matter! Each operation is commutative in and of itself, but not with the other operations. -Recall that OpenGL applies them in reverse order! The Final Exam Matrices – Camera Projections: In OpenGL, the camera position never changes; instead, the scene is rotated or translated around the camera. The viewing volume can be defined in several ways: Orthogonal Projection: Objects of the same size will appear the same size, regardless of distance from the viewing position – useful for maps. Perspective Projection: Objects will be scaled according to their distance from the camera. GlFrustum creates a viewing pyramid that will perform this scaling. The Final Exam Lighting – The Three Term Lighting Model: You should have a good understanding of the 3-Term Lighting Model, and be able to describe what each term means, and how they can be calculated. Term 1: ? Term 2: ? Term 3: ? The Final Exam Lighting – The Three Term Lighting Model: Term 1: Ambient – Defined as the result of direct light bouncing between objects. I = Ia * Ka where Ia is the ambient light in the scene and Ka is the surface properties. Term 2: Diffuse – Direct light eminating from a light source which strikes the objects in the scene and is reflected equally in all directions. I = Ip * kd * cos Theta where Ip is the intensity of the diffuse light source, kd is the reflective property of the surface, and Theta is the angle between the surface normal and the light. Term 3: Specular – The highlights that can appear on metallic, shiny objects. I = f_att * Ip * ks ( cos^n Alpha ) where f_att represents attenuation, Ip is the intensity, Ks is the specular coefficient of the material and Alpha is the difference between the vieing angle and the angle of reflection. The Final Exam Lighting – Alternate Lighting Models: Radiosity – Global Illumination Method that aims to better model the interaction of light as it bounces through a scene. This permits for the modeling of soft shadows, which is difficult with direct illumination methods. However, direct reflections (specular highlights) are difficult to achieve. Bi is the radiosity of patch i, Ei is the energy emitted by i, Ri is the reflectivity of i. The sum measures the input from all other patches. The Final Exam Colors – Color Models: Many different color models exist, and they have different advantages with regard to the human visual system. Adelson’s shadow The Final Exam Color – Color Models: Adelson’s shadow The Final Exam Color – Color Models: RGB (Red, Green, Blue) is the classic color model that is used for computer graphics. It is an additive model – we add each of the three primaries to a black base in order to obtain all the colors. CMYK (Cyan, Magenta, Yellow and Key/Black) is used by output devices such as printers. It's a subtractive model, where CMY is subtracted from a white base. The Final Exam Color – Shading: Several shading models have been discussed in this course. You are expected to know how they defer from one another. Flat Shading: Each polygon is given a single color. Gouraud Shading: Lighting calculations are performed only at the vertices of the polygons, and then the interior pixels are colored by interpolation. This is implemented in OpenGL. Phong Shading: Lighting calculations are performed at each and every pixel to determine its color. The Final Exam Advanced Geometry – Hermite Curves: Many types of splines and advanced curves were discussed in class. Though you should understand the concepts behind all of them, you won't need to know the mathematics behind any of them except hermite curves. Hermite Curves: Controlled by two endpoints and two tangents at the endpoints. x(t) = (2t^3 - 3t^2 + 1) * xp1 + (-2t^3 + 3t^2) * xp4 +(t^3 - 2t^2 + t) * xr1 + (t^3 - t^2) * xr4. y(t) = (2t^3 - 3t^2 + 1) * yp1 + (-2t^3 + 3t^2) * yp4 +(t^3 - 2t^2 + t) * yr1 + (t^3 - t^2) * yr4. z(t) = (2t^3 - 3t^2 + 1) * zp1 + (-2t^3 + 3t^2) * zp4 +(t^3 - 2t^2 + t) * zr1 + (t^3 - t^2) * zr4. The Final Exam Advanced Geometry – BSP Trees: Binary Space Partitioning Trees are used to partition space. This is useful for modeling and for culling hidden surfaces. In essence, this involves inserting planes into the world and determining which objects are in front or behind them. This is represented in the form of a tree. The Final Exam Advanced Geometry – BSP Trees: +-----------+ +-----+-----+ +-----+-----+ | | | | | | | | | | | | | | | | | | | a | -> | b X c | -> d | | | | | | +--Y--+ f | The resulting BSP tree looks like this at each step: a | | | | | | | | | | | | | | | | | +-----------+ +-----+-----+ e X -/ \+ -/ \+ / / ... -> ... | X \ \ | | | | -/ \+ | | / +-----+-----+ b c Y e f \ d The Final Exam Physics: Animation was not a big part of this course, but you have done some rudimentary physics in your assignments. You should have an understanding of the force interactions involved with collisions in the pool table assignment. You should also have some understanding of particle motion and how to do very simple integration and dynamics. The Final Exam Halftoning or Renderman: As in Assignment 4, you will have the choice of doing a question on Halftoning or one on shaders in Renderman. For more details on these, see the slides for Tutorial 4. The Final Exam Good luck!