#version 120 /* Array of bone (model) matrices. */ uniform mat4 m[6]; /* View-projection matrix. */ uniform mat4 vp; attribute vec4 position; attribute vec4 vert_color; /* Each bone is influenced by two bones. The .x and .y fields specify * the bones that influence this vertex. The .z field specifies the * weight of the first bone. */ attribute vec4 weight; varying vec4 color; void main(void) { vec4 px_ws = m[int(weight.x)] * position; vec4 py_ws = m[int(weight.y)] * position; /* FINISME: Blend the transformed locations. */ vec4 p_ws = px_ws; /* Transform the final world-space position to camera-space and * project. */ gl_Position = vp * p_ws; color = abs(vert_color); }