- My Role: Tech Lead & Graphics Programmer
- Client: Breda University
- Team Size: 10
- Platforms: Windows 10
- Production Time: 22 weeks
- Tech: C++20, DirectX 12, DirectX Raytracing
This project is a general purpose RTX rendering library that delivers real time raytracing.
- Physically Based Rendering
- Ray Traced Global Illumination
- Path Traced Global Illuminatiosuntemple_0n
- Ray Traced Ambient Occlusion
- Ray Traced Reflections
- Ray Traced Shadows
- Translucency & Transparency.
- Depth of Field (with Bokeh)
- Post Processing (Bloom, Tonemapping, Film Grain, FXAA)
- NVIDIA’s HBAO+
- NVIDIA’s AnselSDK
I wrote the core of the renderer, raytracing backend, deferred renderer, HBAO+, Ansel integration, path tracer and global illumination, raytracing mip level generation. But as a technology lead I have helped implement and debug nearly every part of the renderer.
Due to my role as tech lead I sadly wasn’t able to focus on a single part of the renderer and do it really well. Originally my plan was to make the global illumination based on surfels as done by EA SEED. This however had to get cancelled because I had to focus on fixing bugs.
As a tech lead I made sure the code was of a good enough quality and the team was working on tasks they enjoyed while pushing the project into the right direction.
Challenges and Mistakes
Originally I wanted to allow us to implement a different rendering backend into the renderer. This caused the architecture to be more complicated than nessessary especially since we didn’t have plans or the time do this.
We implemented a descriptor manager. This however turned out to be a very big time sing which introduced numerous issues. And in the end its not very benefical compared to hard coding it and its poorly integrated into the desing of our renderer.
The way we integrate the scene graph into the renderer isn’t very good. Passing “renderer commands” to the render system and than let the render system perform said commands would have been much cleaner and easier to manage.