CS 410 FINAL EXAM TOPICS

advertisement
CS 410 FINAL EXAM TOPICS
Hardware – Chapter 1: Applications of computer graphics, hardware: random scan and raster scan
CRT's, which was used first, why?, advantages/disadvantages of each, frame buffers, monochrome,
luminance, grayshades, bitplanes/color depth, resolution, pixels, aspect ratio, indexed color, Color
Lookup Tables (CLUT's), true color, calculating memory requirements for various frame buffer
configurations and relationships between color depth, CLUT width and number of entries in indexed color
modes, RGB color, primary and secondary colors (combinations of min and max levels of r,g,b).
OpenGL Basics – Chapter 2 (2.2.1 - 2.7): Grew out of SGI’s GL, now controlled by an Architecture
Review Board (ARB) with members from various companies, libraries (OpenGL core, GLU, GLUT) and
what each does, functions, state, primitives, function format (various parameter types including v),
constants, program structure, callbacks, coordinate systems: world coordinates, screen coordinates,
orthographic projection and glOrtho, viewports and glViewport, creating primitives and setting attributes.
Interactivity and Animation – Chapter 3: (3.2, 3.5, 3.6, 3.10): input modes, which is used in GLUT,
callbacks and what each is used for and how to register: display, reshape, keyboard, special, idle, mouse,
motion, passivemotion; how to create menus, entries and submenus.
Raster Graphics (8.1 – 8.4, 3.11 – 3.12, 3.4, 8.11.1 – 8.11.3): Buffers: front, back, and role of each;
display lists: creating, using; alpha transparency, blending, blending function, source & destination
factors.
3D Vector Graphics – Chapter 4: Scalars, Vectors, Points, coordinate-free geometry, coordinate
systems & frames, representations of points and vectors, homogeneous coordinates and significance of 4th
coord., matrices and how matrix multiplication is used to combine transformations, to perform a change
in coordinates, and to apply transformations to representations of a point or vector, common
transformations: rotation, translation, scaling, shear – what each does and matrix that performs it (rotation
about z only, and no shear), fixed points, how to rotate about an arbitrary fixed point, order of
transformations, OpenGL transformations: matrix mode & role of model view and projection matrices,
current transformation matrix and how impacted by glRotate, glTranslate, glScale, glLoadIdentity,
glLoadMatrix, glMultMatrix, glPushMatrix, glPopMatrix.
Viewing and Projection - Ch. #5 (5.2-5.6): Viewing and Projection of 3D scenes, positioning and
orienting the virtual camera (be able to do with basic transformations and with gluLookAt), orthographic
and perspective projection, clipping volume and its shape in each case (know 2 names for shape in
perspective case), formulas for projected coordinates in terms of original ones for simple orthographic and
simple perspective projection, perspective projection matrix and how to use to find projected coordinates
(including perspective division), OpenGL commands for setting the clipping volume (be able to do
perspective with glFrustum and with gluPerspective), the OpenGL rendering pipeling: OpenGL matrix
modes and what each is used for, coordinates before and after each matrix (world, eye, clip, in order);
hidden surface elimination / z buffering, culling – elimination of polygon back faces.
Texture Mapping - Ch. #8 (8.6-8.8): Texture mapping, image restrictions, texels, texture space and
texture coordinates, creating 2D textures and mipmaps in OpenGL, texturing parameters regarding
filtering (including mixed mipmap modes) and wrapping, texture functions (decal/modulate), texture
objects - their benefits, and how to create and use them in OpenGL, idea of anisotropy and anisotropic
filtering and its benefits (see handout), idea of Multisampling/FullScreenAntiAliasing and its benefits (see
handout), multitexturing (idea of & applications of).
Lighting and Shading - Ch. #6 (6.1 - 6.9): Idea of normal vectors, idea of dot product of two vectors
and its applications: length of a vector and angle between two vectors, unit or normalized vectors, idea of
cross product of two vectors and its application: know what mathematical steps are needed to calculate a
normal to a polygon given its first 3 points, global and local lighting models and their capabilities and
limitations: raytracing and the Phong model, point lights, spot lights, and ambient light, positional lights,
directional lights, ambient, diffuse, and specular intensity, reflection coefficients for each, Lambert’s Law,
Lambertian surfaces & diffuse reflection, surface normal N, light vector L, significance of L.N, angle of
reflection R, shiny surfaces & specular reflection, view vector V, significance of R.V, the half-angle H
and its role in the modified Phong (Blinn) model, shininess (exponent), attenuation factors (constant,
linear, quadratic), additional spotlight properties, global ambient light, OpenGL functions related to
lighting and materials and GL_COLOR_MATERIAL, glNormal3f, front and back faces, flat vs smooth
shading and how to set in OpenGL, normals needed for each and how obtained, Gouraud vs Phong
smooth shading: how implemented & pros/cons of each (see handout and slides).
Modeling – Sections 4.5 & 10.1-10.3: Representing an object with arrays of vertex coordinates, normals,
texture coordinates, colors, etc., avoiding duplicates using indexing, indexed face sets, using OpenGL vertex
arrays to avoid numerous OpenGL function calls, OpenGL functions to enable and set up vertex arrays
(includes color, normal, texture coord. arrays) and how to use them to draw an object depending on whether
indexing is used or not (glDrawElements vs glDrawArrays – see handout & examples).
Programmable Shaders – Chapter 9 (9.1 – 9.5, 9.7 – 9.11, 9.13): The fixed-function pipeline and role of
vertex processor and fragment processor (what each does and need to emulate in programmable shaders),
basic ideas of writing shaders in GLSL including built in support for vectors, matrices and their operations,
built-in variables for accessing OpenGL state and specifying inputs and outputs, different kinds of variables
used in shader programs and what each is for (uniform, attribute, varying), sampler variables and what
they’re used for, applications of vertex shaders (vertex animation, morphing, particle systems) and fragment
shaders (image processing, per-fragment lighting, bump mapping).
Download