After following the usual steps of rigging the skeleton and skinning it, we are ready to animate our model. By far, the easiest and most efficient way of doing this is by using a vertex shader. Since we are working on the vertex level, it makes sense to perform all the transformations right there, using the specialized graphics processor.
In order to do this, we need to upload a number of resources to the graphics processor (GPU). These are the bones of the model and the information from our skinning efforts, meaning the contents of the Vertex
struct shown earlier. With these, set we can use the following information:
attribute vec4 Vertex; attribute vec3 Normal; attribute vec2 TexCoord; attribute vec2 Index; attribute vec2 Weight; uniform mat4 ModelviewMatrix; uniform mat4 ProjectionModelviewMatrix; uniform mat4 Bone[10]; //----------------------- varying vec2 TexCoord0; varying vec3 EyeNormal; //----------------------- void main() { vec4 newVertex; vec4 newNormal...