Final Project

CMP 161/L Visualization and Computer Animation
Winter 2011
Hosh Tachmuradov [htachmur@ucsc.edu]

Overview

For my final project I made a short animation that will be added as a cut scene to the game I am currently working on. The animation is consist of a space ship that is flying above terrain with a smoke coming from the left wing. As one of the goals, I am planning to make movement of the ship to be as long as the user is using the application, i.e. regenerate the terrain below the ship. In addition, I will provide a user capability to switch between different view angles. Finally, I am planning to animate vertex core behind the ship.
Ship Model

My approach

First of all, I have uploaded wavefront OBJ file of a 3D model of a space ship. To load this model I used Nate Robins glm.h file that helped me to generate smooth normals with preservation of edges, weld redundant vertices & texture coordinate generation (spheremap and planar projections) + more.

After that, I used height field map and appropriate texture to procedurally generate terrain. As one of the goals of this project I wanted to make this terrain unlimitedly long. To do so I have created 3 terrain plates, that could be looped during the animation without notice of the user.

In addition, I created an interface to give a user capability to switch between different camera views and control the speed of the ship

Keys:
  • Key 1: view from top dawn (far clipping)
  • Key 2: view from behind of the ship
  • Key 3: view fro the left in 45 degree angle
  • Key 4: view from top down (close up)
  • Key F: speed up the movement of the ship
  • Key S: slow down the movement of the ship

After that I have created a basic particle engine to simulate smoke that is coming from the damaged left wing. The speed of each particle is predetermined by the speed of the space ship.

Finally, I have created a simulation of a "vertex core" behind the ships engine. User can observe this simulation only at the slow speed of the ship

In the process of development, I have learned that it will be an easier to move terrain, than all other object on the screen.

Source Code and Technical Write up Source Code
Technical Write up
Video
References
  1. Visualizing Vector Volume Data
  2. Flow and Particle Data Visualization
  3. A Novel Approach To Vortex Core Region Detection
  4. glm.h