We'll look at the manipulation and projection of 3-d objects into 2-d viewing surfaces. This involves matrix transformations for rotation, translation, scaling and projection.
We will be concerned with parallel and perspective projections. A parallel projection involves a view from "infinitely far away", while a perspective projection is from a specific vantage point and results in foreshortening.
Human perception is a major issue in graphics. We call the 24-bit color representation "true color" not because it gives the real color - it's not even close - but because it's indistinguishable from the real thing to the human eye. We have limitations in perceiving color, resolution and motion. 30 frame per second film would be painful to watch if our brain didn't interpolate frames to give us the illusion of continuity.
We will use OpenGL on Visual C++.
OpenGL is best at drawing lots of polygons (usually triangles) quickly. To do this, simplifying assumptions are made. For example, shading is calculated at vertices only, and interpolated in between. To calculate shading at every point (as in ray tracing) would rule out animations on typical machines.
OpenGL uses a local shading model. Global alternatives include ray tracing, which gives very good object-object interaction for reflections, and radiosity, which excels at global distribution of light intensity.
This is a "top-down" course. We'll look at primitive operations such as scan conversion of lines, circles, polygon filling, etc. towards the end of the course.
Labs will cover 2-d drawing, 3-d rendering of simple shapes, multiple use of simple shapes through "instance transformation". We'll do a lab to "invent" diffuse lighting. In another lab you will represent a complex shape as a union of triangles and shade the triangles appropriately. The last three labs will build a simple flight simlutor. One will generate a realistic city to fly around. The next will add the plane view and dynamics. The last will let you shoot at your city to destroy its buildings.
We discussed briefly four general categories of graphics applications:
Please read Chapter 1 of our text.