Ride in action
OpenGL Themepark Ride
Sheffield Hallam Final year module assignment

The Project

For my final year OpenGL module, I constructed a 3D scene included an animated theme park ride. This ride required many concepts of OpenGL to be understood and implemented from the ground up, including:

  • The maths required to preform vertex and matrix calculations, which we implemented in our own maths library

  • Relationships between vertexes and polygons, and how to format this data to be sent to the shaders

  • Constructing vertex and fragment shaders in GLSL, taking information about models, lighting and textures and combining them using established lighting algorithms

  • Creating data structures to manage objects in the scene, including the ability to parent objects and have translations transfer from parent through to child objects

  • Generating primitive shapes algorithmically, and working with UI coordinates to correctly texture these objects

  • Model the complex geometry of the ride using 3DS Max, and loading that object into the scene correctly

Extended Features

Along with the given requirements of this assignment, we were also given the option to extend the base functionality of the program, by researching and adding other OpenGL features to the scene. On top of the other features, I also implemented:

  • Batch rendering of similar objects, such as the primitive tree meshes, so that the GPU could render these objects more efficiently

  • Particle systems using Batch rendering and billboarding, and applying physics to the particles to allow for very basic simulations of smoke and fire

  • Object transparency, For use with the smoke effects, where a secondary render with the transparent objects accounted for would be preformed

 
Ride in ferst person
The camera could either be set free to move or as a perspective of riding
 
Ride at night
Here the ride can be seen in animation with fire, and the lighting and skybox have been set to night mode