Projects

Projects

A few things I’ve worked with have found their way to the public. Some of which you can find below.

Professional Publications:

Adaptive Volumetric Shadowmaps

Archived version here just in case the link breaks.

Adaptive Volumetric Shadow Maps use a new technique that allows a developer to generate real-time adaptively sampled shadow representations for transmittance through volumetric media.  This new data structure and technique allows for generation of dynamic, self-shadowed volumetric media in realtime rendering engines using today’s DirectX 11 hardware.

Each texel of this new kind of shadow map stores a compact approximation to the transmittance curve along the corresponding light ray.  The main innovation of the AVSM technique is a new streaming compression algorithm that is capable of building a constant-storage, variable-error representation of a visibility curve that represents the light ray’s travel through the media that can be used in later shadow lookups.

Another exciting part of this sample is the use of a new pixel shader ordering feature found in new Intel® Iris™ and Intel® Iris™ Pro graphics hardware. Two implementations are provided in this sample – a standard DirectX implementation, and an implementation that utilizes this new graphics hardware feature.

Using the Intel Perceptual Computing SDK to Make Your Apps More Immersive and User Aware

Archived version in case the original breaks.

The Intel Perceptual Computing SDK along with its 3D camera allows a system to be even more aware of its environment, and more specifically, about what the user is doing. This sample demonstrates how you can make simple additions to your applications to make the experience of using your software much more immersive. Via the use of voice commands, you can do things like quit, pause and resume a game. By detecting if a user gets up from a system, your application can automatically pause or take other actions. These methods can also be used to save power by sensing the user’s presence to dim or turn off displays automatically when they leave, and turn them back on when they return. By detecting if other person(s) are watching a screen, one can implement software privacy screens or hide age-sensitive content while not interrupting game play.

Github projects:

My github projects are currently all distributed with a BSD license so you can use the code however you’d like.

Taskbar Sound Switcher

I worked on this project to fix an annoying problem I had. I often wanted to switch quickly between my headset and my external speakers – but hated clicking all over the taskbar. Wouldn’t it be better if you could set up a rotating queue of sound devices you wanted and quickly switch between them by clicking on a taskbar icon?

Update: Appears Microsoft was listening! They have embedded this idea into Windows 10! (Though I won’t take credit for coming up with the original idea – I just did it in a way I liked)

QtQuick and CMake Template

Qt is a great UI library and comes with a number of useful tools such as qmake. But for many larger projects, you might want to use CMake to be more compatible with your continual integration environment. The docs on how to do this are very poor, so I decided to make a nice starting template that shows you how to set it up. Like many get-started helpers, it’s been a wildly successful little sample.

Windows/Linux Out-of-Source CMake Template

I made a super minimal CMake sample that you can use to start your next cross-platform project that uses out of source builds. It works on both Windows and Linux without tricks or gotchas. It does a great job of introducing people to out of source builds using only standard practices and features that work on all platforms.