Render volumetric data on the GPU using GLSL and openFrameworks

The technology used in Transactions and Dynamism of a Dog in a Wheelchair is now open source. Checkout the code on github!

I'm currently working on updating ofxVolumetrics to work with OpenGL 3.0 and up, as well as OpenGL ES 2.0 for use on the Raspberry Pi and other embedded or mobile devices.

Volumetric rendering is a technique for generating realistic images from a 3d dataset. Each voxel (volumetric pixel) in a volume has red, green, blue, and alpha channels, allowing for complex 3d models to be represented including areas of varying density. For this reason, volumetric rendering has been commonly used in medical imaging, allowing for flexible viewing of CT scan data by allowing the user to strip out certain density ranges or slice through an object. ofxVolumetrics harnesses the parallel processing power of commodity computer graphics processors to give artists and designers access to this powerful technology.

ofxVolumetrics provides an easy to use interface to integrate volumetric data, or voxels, into an openFrameworks project. Volumes are treated like any other 3d object in your scene; you can rotate, translate, and scale to position the volume, then simply call the draw function and ofxVolumetrics will seamlessly integrate the volume into your scene. Quality can be adjusted in the XY resolution and Z resolution independently, and can scale to run smoothly on most modern GPUs.