CS 450/550 -- Fall Quarter 2023
Test #1 Review
This page was last updated: October 23, 2023
Test #1 will be taken using the Canvas Quiz mechanism.
It will consist of ~40 multiple choice questions to be done in 60 minutes.
It will be Open Notes.
Warning! "Open Notes" is not the same as "I don't need to study for it"!
You will run out of time if you have to lookup in the notes every one of the questions.
You don't need to memorize everything, but you should know where ceratin topics can be looked up.
Test Date and Time Range:
Test #1 will be taken on Canvas in a 60-minute interval of your own choosing during November 1-5.
It will open at 12:01 PM on Wednesday November 1 and will close at 11:59 PM on Sunday, November 5.
The test will be open notes.
Once it opens, we (me and the TAs) have to stop answering test-ish questions during Zoom Office Hours.
For all we know, someone is sitting there with the test open and is asking us questions from it.
We will, however, continue to answer project questions.
Test rules:
-
The test is worth 100 points.
-
It is open notes.
-
It is closed friends.
-
You are responsible for:
- what is in the handouts,
- what was said in class or in the videos,
- what was on the quizzes
- what you have done in the projects.
Clearly I cannot enforce the Closed Friends.
I am counting on your honesty.
I would refer you to the
Code of Student Conduct.
Also, you should know that, while there is a lot of good information on the Internet,
there is a lot of bad information too, or information explained in a different way.
This test has been written with respect to our class notes.
Complaints about a missed test answer because "that's not what something000something.com says" will be ignored.
The test can potentially cover any of the following topics:
-
Stages of the Graphics Pipeline -- what does each do?
Model-to-World transform
View transform
Per-vertex lighting
Projection transform
Rasterization
Fragment processing
-
Coordinates:
Model, World, Screen
-
3D Coordinate Systems:
Left-handed,
right-handed
Right-handed positive rotation rule
-
OpenGL:
Drawing:
glBegin-glEnd,
topologies,
viewports
Why triangle strips are more efficient than triangles
Polygons:
planar,
convex,
CW/CCW
-
Display Lists:
What they are, why we care
Where they live (GPU memory)
The fact that they store numbers, not variables or equations
When to use them (for objects that will not change)
-
Transformations:
glLoadIdentity, glRotatef, glTranslatef, glScalef
Compound transformations, transformation order
Matrix stack: glPushMatrix, glPopMatrix
-
Projections:
Orthographic projection, perspective projection
What is the difference between them?
What is an advantage of each?
-
Viewing:
gluLookAt,
eye position,
look-at position,
up-vector
-
Vertices-to-Fragments:
the rasterizer,
interpolation in the rasterizer,
smooth shading
-
Color:
Rods and cones
Additive color (RGB),
subtractive color (CMYK)
The luminance equation (L=.30R + .59G + .11B)
Hue-Saturation-Value (HSV)
-
GLUT:
opening a window,
callback functions,
the idle function,
glutSwapBuffers
-
OBJ files:
What they are, why we care
How to tell if an OBJ file contains surface normal vectors
How to tell if an OBJ file contains texture coordinates
The LoadObjFile( ) helper function
-
Lighting:
Lighting components: ambient, diffuse, specular.
Shading: flat vs. smooth,
Types of lights:
point, directional, spot
Specifying lights:
light position,
light positions get multiplied by the modelview matrix,
spot light direction,
spot light cutoff angle,
light color,
homogeneous coordinates
Specifying material properties:
ambient, diffuse, specular, colors, shininess
Lighting artifacts:
Mach banding
Per-vertex vs. per-fragment lighting
-
The framebuffer:
Number of bits/pixel
Double buffering:
front and back buffers
{z-, zed-, depth-}buffer
Alpha buffer
-
Keytime Animation:
general idea, using the Keytimes C++ class
-
OpenGL Transparency:
it's really blending,
alpha values
The alpha equation: C = alpha*C0 + (1.-alpha)*C1
-
2D Textures:
general idea,
(s,t) coordinates specified at vertices,
0.<=s,t<=1.,
(s,t) coordinates interpolated into each fragment
glTexCoord2f,
Texture wrapping,
texture filtering,
texture environments
Texture objects,
texture binding
Potential problems where s or t instantly jump from 1. to 0.
(e.g., the back of the sphere)
Procedural textures: What are they? Why do we care?
-
Projects:
1
| Draw something cool in 3D
|
2
| Carousel Horse Transformations
|
3
| Lighting Animation
|