University Graphics

Project Details

Platform:

-PC

Engine/Language:

-C++

Project:

-Individual project

GitHub Link:

About

This project is a lite game engine which has been made from an assignment submission. This, includes an ECS (Entity component system) which can be found in Unity and makes use of multiple libraries such as Dear ImGui, a fast and self-contained UI library, and Assimp, a powerful model loading library. There is also include one notable feature. This being the usage of light volumes.

Currently only OpenGL is fully supported with Vulkan being setup and rendering a triangle.

Included a demo scene. The scene includes:

  • A directional light with adjustable colour values
  • A Point light with adjustable colour values and range/radius
  • A Spotlight with adjustable colour values and adjustable inner and outer radius and range
  • Shadow mapping from the directional light
  • Vertex shader animation on the water
  • Tessellation on the tank and ground models
  • Attempt at screen space reflections

This project has really allowed me to apply what I have learnt at university and has become a project which I am proud of.

Additional Features

From continuing this project, I have been able to add more features like adding/removing entities, adding/removing components, saving to a file and I am currently rewriting the renderer to become rendering API agnostic.

Challenges

This project produced many challenges. The biggest challenge was the small amount of knowledge I had with OpengGL. This is due to this being one of the few projects where I interfaced with OpenGL directly. This meant I had a step learning curve with this project. To over come this challenge I used reference materiel from the lectures to help grasp an understanding of OpenGL and used online resources to further my understanding.

Pre-made Scene Image

Future / Improvements

This project has taught me much about how graphics are rendered and has given me a great appreciation for render engines. I hope to continue to work on this project in my free time and add more features like audio and materials.

If you have any question or suggests about this project or any other project please do not hesitate to contract me. This is an area in which I would like to learn more in.

About

Programmer who has worked at Sumo Digital Nottingham/Leaminton, Playground Games and Unity.