Annotation 2020-08-25 160019.png

DirectX 11 Graphics Engine

Project Type: 




Team Size:


Junior School Project

Custom C++ Engine

 Lead Programmer

Sept. 2019 - April 2020




Adaptive Octree
Adaptive Octree

Deferred Rendering - Position Buffer
Deferred Rendering - Position Buffer



Project Perspective

This is far from the first graphics engine that I have written for a class. Having the perspective of having created many before, I wanted to set out and create something much cleaner than the others. I spent a lot of time researching methods of architecture before getting started. This semester was also going to be my first one working with DirectX 11, for GAM class' Turboengine. Working with OpenGL was encouraged, and would have made my life a lot easier, but I took this class as an opportunity to learn a new API. It made this semester a whole lot harder, but it was extremely rewarding.

Dynamic Reflection and Refraction

The final assignment of the first semester of the class was to add dynamic reflection and refraction to our engine by generating an environment map from the inside of the model. This was a tricky thing to get right, and took a lot of work, but created some of the best images I've been able to create with one of my graphics engines.

Deferred Rendering

The beginning of the second semester opened with adding deferred rendering to our engines. This was one of the first concepts in our graphics classes which felt like we were moving into the modern age of graphics. The conceptual understanding of this assignment was made easy by the fact that I had been working closely the last semester with Turboengine, which had been built on top of a PBR deferred renderer.

Spatial Partitioning

The hardest part of the second semester was the spatial partitioning assignments. By the end, the engine had bounding volume hierarchies, adaptive octrees, and BSP trees, using an extremely high-poly scan of a real life power plant to demonstrate its power.