// Vertex weighting/blendin shader // Brian Paul // 4 Nov 2008 uniform mat4 mat0, mat1; attribute float weight; void main() { // simple diffuse shading // Note that we should really transform the normal vector along with // the postion below... someday. vec3 lightVec = vec3(0, 0, 1); vec3 norm = gl_NormalMatrix * gl_Normal; float dot = 0.2 + max(0.0, dot(norm, lightVec)); gl_FrontColor = vec4(dot); // compute sum of weighted transformations vec4 pos0 = mat0 * gl_Vertex; vec4 pos1 = mat1 * gl_Vertex; vec4 pos = mix(pos0, pos1, weight); gl_Position = gl_ModelViewProjectionMatrix * pos; }