Creator: Shu Chen Student number: 991059304 Submitted animation: Turbulence.avi The video is compressed using XviD MPEG-4 and MP3 codec. Please install XviD-1.0.2-29082004.exe if the video does not play. The entire project is done under windows environment. This project has 3 outstanding aspects: 1. It loads 3D models from 3DS files including mesh and material information and render them accuratly on screen. 2. It animates realistic aircraft behaviors such as smooth fly through the scene and rolling the aircraft. 3. It outputs accurate 3D sounds for all the dynamic objects in the scene( aircrafts, ships ). Source files: /Turbulence/*.cpp, *.hpp, Turbulence.dsp, Turbulence.dsw WinMain.cpp // setup the viewing device Turbulence.cpp // handles the choreographic among all the objects in the scene (including sound ). Model3D.hpp/cpp // uses 3 helper classes to load model, store model data. It also draws the model. Object3D.hpp/cpp // used by Model3D class to store vertex, face, and UV coordinate information. It also keeps track of what material this object uses. Material.hpp/cpp // used by Model3D class to store material information such as bitmap filename, ambient, diffuse colour, transparency, etc. Loader3DS.hpp/cpp // used by Model3D class to load mesh and material information from 3DS files. Aircraft.hpp/cpp // this class is an extension from Model3D class. It defines an object's fly behavior. It uses a series of vertices (a line) as the fly path to adjust the flying direction and position for the object. It also protrays rolling behavior found in aircrafts. Yukikaze.hpp/cpp // This is a specific implementation of the Aircraft class for the main airplane. It only update sound position using the object's position. Jam.hpp/cpp // Same as Yukikaze class. It updates sound position for enemy aircraft. Laser.hpp/cpp // Updates sound position for laser fires. Ships.hpp/cpp // Ship class only extends from Model3D and modifies that darw model method to rotate the ring specifically. GeoMath.cpp // math functions. Yukikaze.3DS // 3d model for the main aircraft. Jam.3DS // 3d model for the enemy aircraft. Ship.3DS // 3d model for the ship Scene.3DS // 3d model for the sky above and below. Also contains all the fly paths (lines). *.bmp // bitmaps for various 3d models. *.wav // sound effects and BGM To compile the animation, open Turbulence.dsw and run build. To execute the animation, either run the executable from Visual Studio 6 or use the pre-compile Turbulence.exe in the Turbulence folder. This exe assumes all necessary files are in the current directory. Background: The animation basically presents from the main aircraft's perspective a fly scene through the enemy barricade where the main aircraft is being fired upon by enemy aircrafts and ships. This animation is based on the novel "Yukikaze" created by Chohei Kambayashi and its later animated adaptation (www.faf.jp). The design of both Yukikaze and Jam aircrafts are based on the original design. The ship was designed personally by myself. The 3D model for Yukikaze is created by Kazunori Ito, originally a mdl file for MS Flight Simulator. Other 3d models were created by myself. All the 3d modeling were done in 3D Studio MAX 6.0. Sound effects are from vairous sources. Ship humming and laser fire are from internet. Jet sound effects were recorded from the animated series. The BGM is from the soundtrack of the video game "Zone of the Enders 2".