A Computer Graphics project in OpenGL created as part of a University project.
The theme for this project was space and 1980s retro wave. The objective for the player is to collect all coins and not die to enemies.
The graphical effects implemented in this project are as follows:
- Omni-directional shadows (casted from the sun).
- Bloom (used Call of Duty: Advanced Warfare Presentation for implementation).
- Multi-Texturing (used to map diffuse and emissive textures onto models).
- Instanced Rendering.
- Simplex Noise (used for vertex displacement).
- Skybox
- Environment mapping (used on track).
The player takes control of a flying car which they can move side-to-side on the track in order to avoid enemies or collect items:
- A/D - Strafe Left/Right
- Mouse Left Click - Shoot Bullet
- 1/2/3/4 - First Person, Top View, Third Person, Freecam
- Z (Hold) - Speed up/Slow down game
- G/H - Turn on Godmode/Turn off Godmode
- (In Freecam) W A S D - Move camera
- (In Freecam) Mouse Move - Look around
Visual Studio 2022 is required for this project. Older visual studio version might work but I have only tested it with VS2022 so there is no guarentee. You can run in either Release or Debug mode. Release mode is recommended for best performance.
Open SpaceRider.sln and click Run Without Debugger.
- Street Light: https://sketchfab.com/3d-models/street-light-2d44b333f56c4faaab1bd2007868cc37
- Skybox: https://opengameart.org/content/space-skybox-1
- Player Car: https://sketchfab.com/3d-models/draftpunk-coursework-cyberpunk-car-a6d8bf6728484dcea0054e9235c2bcf0
- Enemy Drone: https://sketchfab.com/3d-models/drone-ad0e1d85295847409e961de33c2ee0bf
- Planet Textures: https://www.solarsystemscope.com/textures/
- Asteroids: https://sketchfab.com/3d-models/gray-rock-e090fe6e5b2248ef928d49a04c67905f, https://sketchfab.com/3d-models/gray-lake-rock-efc76e8b35c847d78c1ba0253806bc55
- Coin Texture: https://opengameart.org/node/7328
- Health Texture: https://opengameart.org/content/green-gradient-fabric
- Next-Generation Post Processing in Call of Duty: Advanced Warfare Presentation (Used for bloom shader): http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare
- Code - Bloom Shader Reference (Unity and Blender): https://github.com/Unity-Technologies/Graphics/blob/master/com.unity.postprocessing/PostProcessing/Shaders/Builtins/Bloom.shader , https://github.com/blender/blender/blob/master/source/blender/draw/engines/eevee/shaders/effect_bloom_frag.glsl
- Code - Track Grid Pattern: https://gamedev.stackexchange.com/questions/174380/how-to-decorate-the-floor-with-a-grid
- Code - Track Multipoint Color Gradient: https://www.shadertoy.com/view/3tGBWt
- Code - Cos Palette: https://iquilezles.org/www/articles/palettes/palettes.htm
- Code - Shader Simplex Noise: https://gist.github.com/patriciogonzalezvivo/670c22f3966e662d2f83