25 lines
634 B
GLSL
25 lines
634 B
GLSL
|
// 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;
|
||
|
}
|