OpenGL and DirectX Essentials LiveLessons Updates

I’ve significantly refactored the source code for the OpenGL Essentials LiveLessons and DirectX Essentials LiveLessons videos. You can find the updated code on Bitbucket.

The original code still resides under the master branch and the new code lives in the VS2015 branch (same branch names for both repositories). Here’s a general summary of the updates:

  • Visual Studio 2015 projects
  • Pre-compiled headers
  • Project references to the Library project
  • Employing NuGet packages for most external dependencies
  • Increased warning level (and now treating warnings as errors)
  • More C++11 usage
  • Replaced most raw pointers with smart pointers
  • Additional refactoring for C++ Core Guidelines
  • Bug fixes

I’ll be doing a similar treatment for the DirectX book over the coming weeks. Shout if you have any questions.


3D Gesture Classification

Back in 2008, I did some work on 2D and 3D gesture recognition. I have a few papers (listed in the Publications section of the About page) and a few YouTube videos (here, here, and here) that discuss some of that work. Recently, I’ve resurrected that 3D gesture classification project and have made the code available on Bitbucket.

This system uses one or two Nintendo Wiimotes and presents a WPF user interface for training and classification. Here’s a screenshot.


Updating this project was triggered by a lecture series on game-related AI, and provided the opportunity for me to hone some WPF skills. In particular, this code adheres to the MVVM pattern and employs the Prism and Unity libraries (the Unity Container for dependency injection — not to be confused with Unity 3D the game engine).

I’ve included some sample training data for left-hand, right-hand, and combination gestures (both hands) that mimic a few military hand signals. For example, Attention is waving your hand back and forth above your head, and Halt is raising your hand straight up above your head. If you have trouble getting these gestures to classify, it’s best for you to train some of your own gestures (so you know exactly how they should be performed).

The system isn’t limited to Nintendo Wiimotes and should be usable by any device that produces 3-axis accelerometer data. I’ve done exactly that for an accelerometer-equipped glove. I’ve also used the same underlying system for 2D classification and have experimented with different machine learning algorithms (e.g. AdaBoost). The classifier included in this software is a statistical classifier and this project is based on Dean Rubine work’ on gesture recognition.

If you have any questions, just shout.


PowerPoint Slides for DirectX Book

If you are an instructor, and have adopted Real-Time 3D Rendering with DirectX and HLSL for a class, there are over 400 slides available covering every chapter in the book. You can download these slides for free through the book’s site at


Bespoke Open Sound Control Update

I’ve recently updated the Bespoke Open Sound Control Library to use the Task-based Asynchronous Pattern (TAP). That’s very cool stuff.

I’ve also addressed a number of thread synchronization issues that have been hanging around for awhile. You can get the latest source from the Bespoke.Osc Bitbucket repository.


Amazon Blog Post

Amazon just published an article I wrote titled Game Programming: Advice on Starting a Career in the Game Industry.

DirectX Essentials LiveLessons

DirectX Essentials LiveLessons is now available! This is a video series on graphics development using DirectX.


These videos follow the same lesson structure as OpenGL Essentials LiveLessons and offer practical, usable instruction on Direct 3D.

The source code discussed during the lessons can be found at this Bitbucket repository.

I hope you find these lessons useful. If you have any questions, please send me an email or visit the Forums.


Tagged with: , , ,

OpenGL Essentials LiveLessons

I’m very happy to announce the release of OpenGL Essentials LiveLessons, a video series on graphics development using OpenGL.


These videos offer over 5 hours of instruction on modern OpenGL development (using the OpenGL 4.4 API) and shader programming with GLSL.

Coverage includes

  • Ambient lighting
  • Diffuse lighting
  • Specular highlights
  • Point lights
  • Spot lights
  • Texture mapping
  • Environment mapping
  • Normal mapping
  • Color blending
  • A 3D math primer
  • Loading and rendering 3D models
  • A survey of more advanced rendering techniques

The source code discussed during the lessons can be found at this Bitbucket repository.

I hope you find these lessons useful. If you have any questions, please send me an email or visit the Forums.


Website Reboot

After nine years of blogging, it was time for an overhaul. This new incarnation of is focused on my recent work, and I’ve purged all previous posts.

I’ve transferred a number of old projects to the Archive page, and you can still find the old blog (at least temporarily) here.

Similarly, I’ve purged the old forum system and have re-enabled user registration for the updated Forums. If you have any questions or comments regarding any of my work, please post through the forums or send me an email through my About page.