MComp Dissertation - Exploration of GPU Accelerated Rendering in OpenGL
Video link:Languages: C++, GLSL (Custom Engine). Grade: 73%.
About
For my end-of-year dissertation, we were given the task on demonstrating what we have learned and our capability to conduct
further research on existing information. The program and write-up had to fit within 4 weeks so we ensured we carefully
scoped the whole project. As I tend to focus more on visuals, I had decided to look into how we can improve performance
by offloading work from the CPU to the GPU. Primarily, I looked into how to utilise GPGPU programming to manage frustum
culling and initiating render calls. If you would like to read about the project in further detail, a copy of the paper can be
found below.
To summerise the main aims and objectives (quoting directly from Section 1.2 of the paper):
This project aims to investigate GPU-centred culling and rendering to measure the extent to which they improve the performance of a rendered scene compared to a CPU-centrally rendered scene. Achieving this will involve the completion of the following objectives:
- Investigate OpenGL’s compute shaders and how to set up and utilise them to accelerate the frustum culling process.
- Identify and understand alternatives of rendering to reduce the overhead of typical implementations of the rendering process.
- Implement frustum culling utilising OpenGL compute shaders.
- Implement one of these alternative rendering techniques to render a 3D scene with basic lighting and shading.
- Evaluate the performance of these implementations by comparing them to CPU-focused implementations with a non-moving set of meshes.
Dissertation paper at: https://docs.google.com/document/d/1Xiq5D-nRn0p9Pqu1rroZ6E1TqF94XFueyhJY9IZNEzA/edit?usp=sharing.
GitHub repo at: https://github.com/JunkyX1122/gpu-opengl.
Majority of code that isn’t tutorial code can be found in the ‘CSC8503’ and ‘CSC8503CoreClasses’ folders.