Feature Film - The Wild Robot

I was credited for two roles on The Wild Robot, I started out on the show as the first Lighting TD on production, tasked with building the shows custom tooling. Upon completion of development, I was promoted to lighting tools engineer for all shows across the studio.

Key Technologies: Houdini, Nuke, Python, PyQT5, USD, VEX

Link

Feature Film - Trolls Band Together

As a Lighting TD on Trolls Band Together I was responsible for manintaining lighting department tools, both studio wide, and show specific. I was focused primarily on optimizing rendering pipelines for the department and assisting artists with day-to-day shot support and optimization.

Key Technologies: Houdini, Nuke, Python, PyQT5, USD, VEX

Link

World of Warcraft - Dragonflight

As in intern I was a credited contributor to the titled World of Warcraft: Dragonflight expansion pack. I was a member of the game engine team, focused on contributing to graphics systems within both the engine and DCC platform. Mainly, I did work contributing to a innovative particle system powered by compute shaders on the GPU allowing artists to create aesthetic, high fidelity effects, while being less limited to performance constraints.

Key Technologies: DirectX 11/12 API, HLSL, Modern C++, Dear ImGui, RenderDoc, SVN, Perforce

Link

Physically Based Raytracer

Physically Based Raytracer written from scratch in C++. The raytracer implements a monte carlo rendering algorithm presented by Dr. Peter Shirley [NVIDIA]. The raytracer uses an abstract implementation of materials and surfaces to represent just about any sort of object, medium, etc. that could come to mind. Additionally, I used multithreading to create an accumulating buffer to render the image in parallel, allowing for ~30-50% better rendering times depending on scene complexity.

Key Technologies: Modern C++, Multithreading, Physically Based Rendering, STB_IMAGE Library

Source

Teapot Graphics Engine

A work in progress, minimal graphics engine. A expansion and improvement on both my toy engines. This project is being developed for the purpose of fully understanding a game engines lifecycle. Features include: Physically based rendering material pipeline, HDR w/ ACES tonemapping, gltf model support, omnidirectional shadow mapping.

Key Technologies: Modern C++, OpenGL Core Profile, RenderDoc, GLSL, ASSIMP, USD, GLFW, Cmake

Source

Voxel Engine

A voxel engine based on my foundational graphics engine, Maxwell. The engine is written in C++ and implemmented in OpenGL and supports the interactive rendering of 16.7 million plus voxels. Along with that, utilizing the FastNoise2 library there is customizable noise-based terrain generation. To improve the realism of the terrain, I also implemented a physically-based hydrological erosion simulation using particles and classical mechanics, I also use C++ Multithreading to spawn a worker thread and compute the simulation step, allowing for a realtime, interactive, visualization. On the left below, you can see an example terrain rendered with no simulation, and 150k particles simulated on the right.

Key Technologies: Modern C++, OpenGL Core Profile, RenderDoc, GLSL, GLFW, Cmake, FastNoise2, Multithreading, Physically based animation, Particle Dynamics

Source

Unity Point Cloud Renderer

A simple point cloud renderer I built as a weekend project in Unity. The rendered was built with Unity's Universal Rendering Pipeline, and I utilized a mix between native shader-graph code and custom function built in HLSL to support geometry instancing. The entire render is driven by a single draw call to geometry instanced out naively along the vertices of an input mesh. It uses the diffuse textures and normals provided along with the model to calculate emission and direction.

Key Technologies: Unity, C#, HLSL

OpenGL Toy Rendering Engine

A toy rendering engine written in the OpenGL Core Profile. Includes support for the ASSIMP library as well as 2D and 3D rendering. Pictures include shader implementations and cool things.

Key Technologies: Modern C++, OpenGL Core Profile, RenderDoc, NVIDIA Nsight, GLSL, ASSIMP

Source

Vulkan Toy Rendering Engine

A reimplementation of my OpenGL Toy Rendering engine, a delve into understanding of the Vulkan side of things. With a specific focus on better understanding the graphics pipeline and how Vulkan exposes that to the advantage of the programmer.

Key Technologies: Vulkan API, Vulkan Memory Allocator (AMD),Modern C++, Dear ImGui, SDL, RenderDoc

Source

Geometry Processor

While working through Dr. Keenan Crane's [CMU] course on Discrete Differential Geometry, I implemented several additions to his labs Geometry Processor provided for the course. Here's a collection of cool features and my though process on the assignments!

Key Technologies: Modern C++, OpenGL Core Profile, GLSL, Differential Geometry Numerical Methods, Dear ImGui

Source

Raymarcher

A Unity Engine Raymarcher implemented entirely in HLSL. The entire engine is contained within a single shader and can support any signed distance function or field thrown at it.

Key Technologies: Unity Game Engine, Compute Shaders, HLSL, CSG Algorithms

Source