CS 457/557 -- Winter Quarter 2018
Test #1 Review
This page was last updated: March 8, 2018
Test date and time:
|Friday, February 9|
|10:00 - 10:50|
- Short answer
- ~ 25 questions
The test is short-amswer.
It will likely consist of 25 4-point questions, for a total of 100 points.
There will be 40 questions, each worth 2.5 points, for a total of 100 points.
It is closed notes, closed Internet, and closed friends.
You are responsible for
- what is in the handouts
- what was said in class
- what you have done in the projects
- the GLSL examples we looked at in class
The test is over promptly at 10:50.
Only the tests that have been turned in by then will be graded.
The test can cover any of the following topics:
What that means.
What are they good for?
Coordinate systems: Model, World/Eye, Screen
Deciding what to key off of
Stripes: keying off X vs. keying off s
Stripes: keying off a quantity in Model Coordinates vs. World/Eye Coordinates
Why it needs to be coherent and repeatable.
Why it can't really be random.
Why we use Gradient.
How to use noise and why.
"baked" into a look-up texture.
[ The noise equations won't be on the test. ]
Fun With One:
different ways to manipulate the path from 0. to 1.
[ The exact equations won't be on the test. ]
Goals of GLSL: (1) speed, (2) quality.
Features of the language.
Where the GLSL shader compiler lives (in the driver).
The GLSL discard operator.
What happens if you use gl_FragColor.a = 0. instead.
GLSL coordinate transformation:
Eye: gl_ModelViewMatrix * gl_Vertex
Clip: gl_ModelViewProjectionMatrix * gl_Vertex
What effects you can get with each kind.
gl_NormalMatrix * gl_Normal
GLSL: Uniform, Out/In, and Per-vertex Attribute variables.
What they do.
In what circumstances they are used.
GLSL vertex and fragment shaders.
How they work.
Where they fit into the overall OpenGL pipeline.
What they replace.
What they don't replace.
Built-in GLSL variables.
Built-in GLSL functions.
[ You don't need to know all of them --
just the major ones we've been using in class and are
used in the projects. ]
morphing (cow-to-sphere and cow-to-cube),
smoothing the ellipse boundaries,
Dome projection [you are not responsible for the equations].
Hyperbolic Geometry [you are not responsible for the equations].
Lighting: Ambient, Diffuse, Specular:
Per-vertex vs. Per-fragment lighting.
Flat vs. Smooth lighting.
Types (1D, 2D, 3D, Cube).
(All types return a vec4. They are "typed" by what gets passed in to index into the texture.)
Texturing in GLSL:
Sampler variables (e.g., sampler2D).
The texture( ) function.
What it is.
Why you might want it.
How to get it.
Cube-mapping texture consists of 6 images in one texture
Reflection. (reflect function)
Refraction. (refract function)
How the shader version differs from "real" reflection and refraction.
Displacement-mapping versus bump-mapping.
Height field bump-mapping.
Creating the normal from a height field.
Advantages of bump-mapping over displacement-mapping
Advantages of displacement-mapping over bump-mapping
Simulating a displacement from a plane (terrain, ripples).
The test can cover any of the following Projects:
Elliptical Dots: ellipse equations, finding out what checker you are in, smoothstep function, mix function
Noisy Displaced Elliptical Dots: use of noise, glman's way of giving you noise
Displacement Mapping, Bump Mapping, and Lighting: computing derivatives, tangent vectors,
computing the normal, perturbing the normal