Skip to content

wolgemoth/FinalYearProject

Repository files navigation

Final Year Project

Preview image

Table of Contents

About

This project represents the culmination of the programming work I completed throughout my final year at university.

It is an extension of my 3DGP assignment from second year, and is expected to undergo changes and transformations in the upcoming months as more additions and modifications are implemented.

If you are assessing this project, please refer to the Dependencies and References sections of this document for a comprehensive list of sources.

Features

  • Physically-Based Rendering Pipeline
  • Full Post Processing Stack
  • PCSS Shadows
  • Physics with Bullet 3
  • Entity Component System
  • Concurrent Capabilities
  • Networking Capabilities
  • Multi-Platform Positional Audio Playback
  • Multi-Platform Keyboard and Mouse Input
  • GUI Implemented using IMGUI
  • Custom GLSL Interpreter
  • Resources System with Asset Streaming
  • Passes Valgrind and Google Sanitizers

Scenes

By default, the project comes with the following scenes:

Engine Test

Engine-Test image

This scene contains a demonstration of the engine's core functionality, in a simple PBR-rendered environment.

Planets

Planets image

A to-scale simulation of the positions and rotations of the planets in the solar system. It updates in realtime according to the current date and time.

Stars

Stars image

A 3D visualisation of the stars in the ATHYG dataset, with Sol positioned in the centre.

FYP

FYP image FYP2 image FYP3 image

A 3D map of a user-defined location in the world. It features to-scale simulations of the stars, planets, sun, and moon in 3D, alongside 3D representations of nearby aircraft broadcasting their positions. The map updates in real time and is accurate to the current time and day.

Map includes data reconstructed from OpenStreetMap(c)

Build from Source

Linux

To minimise project size and simplify setup, the build system is able to link to the necessary packages if they are already installed on your system. You may need to install the following packages:

Debian-Based

sudo apt-get install libsdl2-dev libglew-dev libopenal-dev libcurl4-openssl-dev libbullet-dev libassimp-dev

Windows

Building for Windows is not yet supported. This will be added in the future.

Dependencies

References

Asset Sources

Photo-realistic moon textures courtesy of NASA, via their CGI moon kit:

Textures of astronomical bodies downloaded from SolarSystemScope under CC Attribution 4 international license:

Textures downloaded from Poly Haven under a CC0 permissive license:

"Bokeh__Lens_Dirt_65" texture downloaded from "SweetFX Settings DB" and edited with GIMP. Unknown license. Used non-commercially under fair use (for educational purposes):

"tavern-wood-planks1" PBR texture pack downloaded from "Free PBR" and edited with GIMP. Non-commercial license. Used non-commercially under fair use (for educational purposes):

aircraft.obj made by me for this project using Blender 4.1

"Hollow_Bass.wav" made by me for this project using Audacity.

"machineGun.wav" was made by me for another project.