CS 450/550 -- Fall Quarter 2024
Test #1 Review
This page was last updated: October 19, 2024
Test Date and Time Range:
Test #1 will be taken on Canvas in a 60-minute interval of your own choosing during October 30 - November 2.
The test will open at 12:01 AM PT on Wednesday October 30 and will close at 11:59 PM PT on Saturday, November 2.
(Note that this is Saturday, not Sunday like the quizzes!)
The test will be Open Notes.
The test will consist of 40 multiple choice questions to be done in 60 minutes.
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.
Once you start the test, you must finish.
Canvas doesn't have any way for you to pause the test and come back later.
So don't start the test until you are sure you have the next 60 minutes free.
Once the Test #1 period 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:
(Note:
The major topics are a complete list.
The sub-topics are not a complete list.
These are just examples of what some of the sub-topics on the test could be.)
-
Stages of the Graphics Pipeline -- what does each do?
Model-to-World transformation
View transformation
Per-vertex lighting
Projection transformation
Rasterization
Fragment (pixel) 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)
-
Sines and Cosines for Computer Graphics
x = R*cos(θ)
y = R*sin(θ)
Writing a circle-drawing function
Changing the number of sides to produce different shapes
What we get if we use different x and y radii
What we get if we gradually change the radius
The effects of setting Amplitude and Frequency in a sine function
-
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
-
Keytime Animation:
General idea
Using our Keytimes C++ class
-
OpenGL Transparency:
It's really blending
Alpha values
The alpha equation: C = α*Color0 + (1.-α)*Color1
-
2D Textures:
General idea: (s,t) coordinates specified at vertices,
0.≤s,t≤1.,
(s,t) coordinates get interpolated into each fragment
glTexCoord2f,
Texture wrapping,
texture filtering,
texture environments
Texture objects,
texture binding
Potential ugliness 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?
-
Forward Kinematics:
The general pattern for computing
[M n/g] = [M 1/g] * [M 2/1] * ... * [M n-1/n-2] * [M n/n-1]
-
Projects:
1
| Draw something cool in 3D
|
2
| Helicopter Blade Transformations
|
3
| Lighting Animation
|