Posts by Year


GPU Ray Tracing in an Afternoon

10 minute read

Here we take the work previously presented in Peter Shirley’s excellent book, and move it to run entirely on the GPU.

Vulkan Textures Unbound

6 minute read

This post shows an example of how to use unbounded arrays of textures in Vulkan.



Screen Space Glossy Reflections

31 minute read

Reflections are an important effect present in any routine attempting to approximate global illumination.  They give the user important spatial information a...

Dealing with Shadow Map Artifacts

5 minute read

In a previous post on stack stabilization, the linked video showed a few major issue with shadow mapping.  These issues have plagued the technique since it’s...

Stacks on Stacks

2 minute read

A long while back, I realized my scenes would be better served and more interesting if there was a more dynamic component to them.  Outside of the very basic...

Bachelor Thesis Acknowledgement

less than 1 minute read

I recently received an acknowledgement in Lukas Hermanns’ bachelor’s thesis entitled Screen Space Cone Tracing for Glossy Reflections, which I thought was re...

Separable Subsurface Scattering

less than 1 minute read

I’ve recently implemented Screen-Space Separable Subsurface Scattering into my rendering engine.  This implementation is based off the incredible work that’s...


Hello, World!

less than 1 minute read

This is a test post with a little sample code to verify syntax highlighting is working correctly. #include <iostream> int main(void) { std::cout ...