KinectFilter offers a series of example applications that take the Kinect data stream, process it on the GPU, and display the results on a window. I sketched these applications and then further expanded them as I was learning about
OpenCL and familiarizing myself with
The libfreenect library is used for interfacing with Kinect. The processing of the data is done on the GPU with
OpenGL handles the display of the data. One main advantage of OpenCL is that it can share data directly with OpenGL. So, after processing, there is no need to return the results back to the host. OpenGL takes control of the buffers on the GPU and goes from there. The use of
vertex buffers is demonstrated. There are examples to showcase how to setup
interoperability using the OpenCL C++ API.
Currently, on version 2.0, there are 3 examples in which a Laplacian of Gaussian (LoG) filter is applied on the RGB stream, and another one in which a 3D point cloud is built while performing RGB normalization.
The source code is available on GitHub.