Midterm Review Information
The midterm will be Tuesday, October 13
Topics Covered:
- C++: Classes (initialization and methods, object heirarchy), some questions will require general use of C++
- OpenGL: Transformations (Scaling, Rotation, and Translation), colors, making objects from vertices, uniforms, textures, vertex and fragment shaders, GLSL.
- Threading: Starting a thread, using a separate thread for movement and physics
- 3D: Motion, gravity, floors, basic collision detection, moving through a 3D world, looking up and down.
- STL Vectors: Creation and iterating through vectors. Might be part of a question, but no question specifically on STL vectors.
You can bring up to 10 pages. There won't be any questions specifically on blender or .obj files.
OpenGL Level of Detail
We've used OpenGL a fair bit, but this also isn't GPU programming. So I wouldn't expect you to know how to use a geometry shader, for example. Since we haven't added lighting, we've only used the fragment shader to apply textures. Some questions I think you should be able to answer:
- What is the difference between the vertex shader and the fragment shader?
- Suppose you draw an object with 30 triangles, on a screen with a resolution of 1280 by 800. Which will be invoked more times, the vertex shader or fragment shader?
- If a vertex has a position, texture coordinate, and normal vector, how many floating point numbers will be associated with one vertex?
- What is the meaning of "uniform" in GLSL?
3D Math
Although we've used 3D math quite a bit, we didn't really dive into the matrix aspect of it. We did cover translation, scaling, and rotation, at least using the GLM library functions for these. Here are some examples of questions I think you should be able to answer:
- Suppose you need to perform a rotation and a translation. Why does it matter which order these are done in?
- How do you figure out the distance between two points in 3D?
- How can we determine if a point is inside a particular bounding box? Assume the bounding box is rectangular.
- How do you convert from a heading and elevation to a vector?