Name: Brian Byrne Login: byrne Date: 12/16/05 Class: CS 559 Assignment: Project 3 For instructions, see: USER.txt For list of the objects you modeled, see: MODELS.txt for behaviors, see: BEHAVIORS.txt For technical challenges, see: TECHNICAL.txt Solution: Project3.sln Source files: Billboard.[h|cpp] Camera.[h|cpp] Car.[h|cpp] CarCam.[h|cpp] EnvironmentMap.[h|cpp] Flag.[h|cpp] FlyCamera.[h|cpp] GlObject.[h|cpp] GlWindow.[h|cpp] HeightMap.[h|cpp] House.[h|cpp] IceSheet.[h|cpp] Model.[h|cpp] ModelManager.[h|cpp] P3Window.[h|cpp] Project3.[h|cpp] RoadMap.[h|cpp] RoadNode.h Skybox.[h|cpp] Skyscraper.[h|cpp] Smoke.[h|cpp] SnowballProjectile.[h|cpp] Snowfall.[h|cpp] Snowman.[h|cpp] Texture.[h|cpp] TextureManager.[h|cpp] Tree.[h|cpp] Vector3f.[h|cpp] l3ds.[h|cpp] libtarga.[h|cpp] Description: The program displays an entire snow world with much activity. Included: - Snowmen who exhibit different snowball-throwing behaviors, such as: - Normal straight throw - The discus throw (body rotated throw) - Evasive movements while throwing - Throwing at the camera - A super strong throw - Cars that traverse around the city's streets - A realistic skybox - A particle system to make snow fall from the sky - Houses complete with driveways and chimneys with particle smoke - A gigantic tree, like the one in "The Grinch" - Flags the wave in the wind. - A water tower amongst some trees - A business block with tall skyscrapers - A quiet, frozen pond. Files: Billboard.[h|cpp]: A two dimensional object that always faces the user. This is done by a given Camera location. Camera.[h|cpp]: Sets up a camera for viewing of the scene. Also contains culling code. Car.[h|cpp]: A simple car that is interpolated around a roadmap. CarCam.[h|cpp]: A camera the sits on the front hood of a car. EnvironmentMap.[h|cpp]: Reads in a targa file and places various objects dynamically in the scene depending on the color of a given pixel. Flag.[h|cpp]: A waving flag implemented using hacked physics. Flycamera.[h|cpp]: A flying camera that moves around a scene using 'wasd' controls for lateral movement, and directional arrows for rotation. 'r' and 'v' also provide direct vertical movement. GlObject.[h|cpp]: An object to be drawn. Contains a distance, forward, right, up, color, rotation, and scale vectors. GlWindow.[h|cpp]: The main window. Responsible for global draw setup and management of the complete scene. HeightMap.[h|cpp]: Creates a ground plane with various heights specified by the loaded targa image. The heights are determined by the gray-level of each pixel. House.[h|cpp]: An object that represents a house. This house chooses from a random texture color. IceSheet.[h|cpp]: A simple plane representing frozen water. Model.[h|cpp]: A wrapper class for a L3DS object. Inherits from glObject. ModelManager.[h|cpp]: A manager that loads and stores all of the models for the scene so each model does not have to be loaded for each use. P3Window.[h|cpp]: Generated by fluid for UI. Project3.[h|cpp]: A universal include file that contains the textures and models. RoadMap.[h|cpp]: Draws the road to the environment. RoadNode.h: An intersection of roads. This node determines that there are multiple pathways at this location. Skybox.[h|cpp]: A skybox that encapsulates the user in a cube. This cube has the special property that its textures are stretched as to give the illusion of full, smooth panoramic view. Skyscraper.[h|cpp]: A simple skyscraper building with various random textures. Smoke.[h|cpp]: A billboard particle that simulates a chimney smoke stack. The smoke decreases in size as it floats upwards. SnowballProjectile.[h|cpp]: A projectile affected by physics (gravity) that is thrown by snowmen. Snowfall.[h|cpp]: A particle system that creates a blizzard-like atmosphere around a specified camera. Snowman.[h|cpp]: A snowball-throwing snowman with different sets of behaviors, which include standard throwing, spin-throwing, super-throwing, evasive movements, and attacking the camera. Texture.[h|cpp]: A targa texture file containing data and dimensions. A storage and manager for all textures. Stores the textures so that it is not necessary to load a whole targa file every time you want to use it. Also allows easy access to specific gl commands (alpha, mipmapping). TextureManager.[h|cpp]: A storage and manager for all textures. Stores the textures so that it is not necessary to load a whole targa file every time you want to use it. Also allows easy access to specific gl commands (alpha, mipmapping). Tree.[h|cpp]: A billboarded tree with 4 sections. Vector3f.[h|cpp]: A standard vector of size 3 taking floats. Can perform operations such as length, dot product, scalar mult, scalar div, addition, subtraction, and cross products. l3ds.[h|cpp]: A 3ds importer by Lev Povalahev. libtarga.[h|cpp]: A targa import by Alex Mohr, copywrited by Michael Gleicher. Attribution: textures/skybox/*: Created by Simon "sock" O'Callaghan under the Creative Commons Deed. http://simland.planetquake.gamespy.com/pages/materials.htm models/*: Created and distributed by: Max-Realms. http://www.max-realms.com/ textures/snow/*: textures/house/[brick1.tga|brick2.tga]: Created by Adam Degrandis; Three-D/Game. http://www.gamesextract.com ModelManager.[h|cpp]: Based on a texture manager by Michael Gleicher, modifed by Yu-chi Lai.