Final Project: CSC 471, Cal Poly, University
TORNADO SIMULATOR:
By Omar Megdadi
Introduction:
  
The goal of this project was to simulate the look, feel and movement of tornadoes of classes F1 through F5. I was also able to implement a small key-framed animation of a house getting sucked into the air. The simulation was programmed in C++ using OpenGL and GLUT. In the end this is a particle simulation/ hierarchical model animation/time-passer.
Usability:
   The user has the ability to change the class of the tornado at any time, rotate the camera around the scene, and move the tornado in 4 directions. When the tornado comes in contact with a house, the house is sucked up into the sky layer and new house appears randomly. This goes on forever creating a nice tool to pass time with. The range of tornado movement is restricted, and is best viewed in the original camera position (r to reset).
Tech Specs:
   A tornado's movement closely resembles a parametric sine wave. Using this similarity, and an amplitude variance to change the co-efficient of the sine function, I arrived at these functions: [x=(|beta|/a) sin(beta)/10.0],
[z= sin(8-a)/3.0*beta/10.0], and [y==>linear]. From this, I was able to construct a core that resembled that of a real tornado. The core acts as the vertebrate of the tornado, and each bone in the vertebrate, has a ring of particles. These particles make up the particle system used to govern the body of the tornado. The particle are each mapped with a volume, giving the tornado mass. The sky layer is separate of the tornado, and areas of the sky move when near a tornado's core. There are 3 rotations, 1 for the sky, 1 for the whole tornado, and one used to rotate each ring of the tornado separately. The cloudy effect of the tornado was achieved by removing one particle in each ring causing a gap; when the rings are rotating it gives the tornado varying degrees of density.
Mouse Controls:
   Up/Down/Left/Right - Camera control. (Rotation Only)
   Right Click - Menu
   -Toggle Animation
   -Generate Tornado
   -Reset
   -Exit
User Controls:
   1-5 - Changes class of tornado (F1 through F5).
   Up/Down/Left/Right - Moves the tornado around the scene.
   a - (Re)start animation/Pause animation
   r - Reset.
   q - Quit.
Screen Shots:
   Breakdown of a scene
 Core
  Particles
  Tornado
  Scene
  Starting Position (Class F1)
These are the different sizes of tornadoes.
  Sucking up a house. (Class F5)
Cloud layer in motion
OpenGl Resources:
OpenGL - A Primer by Edward Angel
setstats 1