Personal Projects

FiberTaskingLib

FiberTaskingLib is a library for enabling task-based multi-threading. It allows execution of task graphs with arbitrary dependencies.

Under the covers, the task graph is executed using fibers, which in turn, are run on a pool of worker threads (one thread per CPU core). This allows the scheduler to wait on dependencies without task chaining or context switches.

FTL was created as a proof of concept of the ideas presented by Christian Gyrling in his 2015 GDC Talk 'Parallelizing the Naughty Dog Engine Using Fibers'

Lantern

Lantern is a physically-based path tracer written in C++11. I created it in order to learn light transport algorithms, and physically-based rendering. It is a forward path tracer with Next Event Estimation and Multiple Importance Sampling. It also supports participating media via brute force path sampling.

The Halfling Project

The Halfling Project is a DirectX 11 renderer written in C++. It's a series of demos I created to learn DX11, and computer graphics in general.

The first few demos follow along roughly with Frank Luna's book, "Introduction to 3D Game Programming with DirectX 11". The next set of demos explore deferred rendering, mostly following Andrew Lauritzen's course notes from Siggraph 2010.