GPU Skinning with 1D Textures

2014/12/21 19:50

When Blender 2.5 was released i had to rewrite some of my animation exporting scripts due to changes in the API. I figured since i was changing the scripts i might as well change the actual animation code to support GPU skinning as well.

I’m currently using a VBO and filling it with the skinning data each frame, then transferring the contents of the VBO to a 1D texture (with internal format GL_RGBA16F or GL_RGBA32F) using a PBO. That 1D texture is then used in the vertex shader to transform the vertices. The joint weights and indices are passed through as vertex attributes. I’ll write up in more detail soon.

I’ll also experimenting with using Vimeo to show off some of my code. You can see the results of the GPU skinning in the above video, the 1d texture is shown at the bottom of the frame.