Shader Graphs

Slope Warning Visual Debug

As part of a Quest 3 prototype exploration, I authored this Unreal Engine visual debug material to streamline the terrain sculpting process by providing real-time feedback on player traversal limits. Inspired by a similar utility within the Frostbite Engine, this material function dynamically overlays a red warning threshold when a slope exceeds a user-specified angle. By integrating several adjustable parameters, I created a versatile diagnostic tool that allows artists and designers to catch traversal issues during the graybox phase, preventing costly layout revisions later in production.

Battlefield Hardline - Backwoods Environment A
View Project

Layered Height Blending

I authored this layered blend prototype to explore high-fidelity material transitions while maintaining a highly optimized texture sampler count. The shader utilizes a custom height-map blending function to seamlessly integrate a base layer, a top layer, and optional third layer or puddles. To maximize efficiency, I explored an experimental texture packing strategy that condenses a sets of Albedo, Normal, Roughness, Ambient Occlusion, and Height maps into just two texture samples. This approach allows for complex, multi-layered surface detail while remaining well within the performance budgets of hardware-constrained platforms. The below video demonstrates it in action and only uses two layers plus additional puddle resulting in only 4 texture samples.

Battlefield Hardline - Backwoods Environment A
View Project
Battlefield Hardline - Backwoods Environment A
View Project

Water Flow Shader

I developed this river shader for the Battlefield Hardline DLC, designed to integrate seamlessly with the Frostbite Engine’s spline system. By utilizing the engine's spline tools, the shader allowed for a highly directable water system that supported variable flow speeds across the environment. This shader got leveraged across several DLC maps.

Deferred Lighting-Driven Fire Shader

For the 2013 Tomb Raider reboot, I collaborated with a rendering engineer and VFX artist to develop a custom deferred light-driven "fire light" shader, designed to automate surface scorching effects in real-time. By utilizing a custom G-Buffer that stored light luminance and data in individual RGBA channels, I authored a shader that interpreted these inputs to drive dynamic visual changes. This system enabled several complex effects—including linear interpolations for charring, screen-space UV distortion for heat waves, and time-based dissolve functions to simulate fire spreading across surfaces. This pipeline approach represented a significant workflow optimization, allowing artists to simply place customized deferred lights and flame particles to trigger instant, localized scorching. By moving away from manual vertex blending, we provided the team with a more efficient, high-impact method for creating reactive, fire-damaged environments.