Outline for April 25, 2007

Question: What are the advantages of having people vote using computers? What are the disadvantages?
  1. Greetings and felicitations!
    1. I will do a review session in class on Friday, so bring your questions to it!
    2. Sample midterm available on Thursday, on the web
    3. Warning: no office hours on Wednesday!
  2. Brief history of computer games
    1. 1961: Spacewar! implemented on a PDP-1 at MIT; two ships fired torpedos at one another and moved around screen; DEC liked it so much they distributed it with the PDP-1
    2. 1971: Star Trek created on Sigma 7 minicomputer at MIT in 1971
    3. 1972: Hunt the Wumpus created on PDP-10; ported to a wide variety of systems
    4. 1974: Maze War at NASA Ames Research Center was early multi-player 3D "first person shooter" game
    5. 1975: Adventure written in FORTRAN for PDP-10 by Will Crowther; very widely ported to other systems
    6. 1980s: Pong, Pac-Man, etc. on home computers
  3. 3D graphics
    1. 3 numbers to specify each point in space.
    2. 2D triangles (or other polygons) composed to create 3D objects.
    3. Geometry engine of the GPU (Graphics Processing Unit) calculates position of each corner with respect to a vantage point and camera angle, called tessellation or triangulation. Also calculates position of light sources, and clips lines outside viewpoint
  4. Rendering engine of the GPU creates 2D rasterization of 3D scene
    1. Creates a wire frame of lines of the polygons.
    2. Z-Sorting (depth from viewer) of each polygon so closer objects are drawn last and properly cover more distant objects.
    3. Z-buffering calculates depth values of each pixel of on the surface of each polygon, and stores them. Then displays pixel with smallest depth on each ray.
  5. Filling things in
    1. Texture maps are unchanging bitmaps that are tiled to cover surfaces.
    2. MIP mapping (multum in parvum) "many in few" uses different bitmaps for the same surface depending on the surfaces projected size and resolution.
    3. Perspective correction changes texture maps to wedges
    4. Alpha blending, for translucent effects, takes a percentage of the fog and the original pixel. Faster to "stipple" which shows fog on every other pixel.
    5. "Fogging" makes diffuses distant objects. "Depth cueing" makes distant objects darker. Both reduce details and make rendering less complicated for the rendering engine.
  6. Shading
    1. Bilinear filtering averages the four surrounding texture map pixels
    2. Shading is based on light sources. Gouraud shading interpolates values between vertices of the same polygon
    3. Ray tracing follows the path of a light ray as its reflected, refracted, and absorbed
    4. Vertex shaders apply Gouraud shading principles to non-visual properties of animated objects, e.g. temperature and weight, and displacement
    5. Particle shaders operate on individual pixels independent of polygons
  7. Video cards
    1. Two cards use "scissors rendering" to split though, with one to doing the upper part of the scene and one doing the lower part.
    2. If the two cards finish a scene early, "frame buffers" hold the scenes until it is their turn.
    3. Cards need their own power connectors, fans, and heat sinks.

Here is a PDF version of this document.