This was a semester long project in which we implemented the basics of what is necessary for a render engine.
Physically Based Rendering
The math for the project took advantage of the SIMD nature of DirectX math allowing us to use parallelism on the CPU to make calculations be solved faster.

Animation Curve Helper
My interest in animation led me to create this large helper file and a long list of animation curves that can be easily access and used. It also visualizes the curve within a small graph to help the user visualize what they have chosen. Note that this tool is conveniently set up connecting it to ImGui and so linking a new animation using this system is very convienent for rapid prototyping.

Dither Shader
I had always found it very interesting when games opted to use dithering in order to imitate transparency over normal transparency. Until we actually began to implement transparency during the production of this project I never knew what a PAIN it was in order to do and how expensive it can be. I sought to implement my own rudimentary dithering pattern for myself in this engine that offered several different patterns, which can be swapped out for different textures, at different distances from point lights.
