35 lines
625 B
GLSL
35 lines
625 B
GLSL
#version 130
|
|
|
|
uniform mat3 colorTransform;
|
|
in vec3 Color;
|
|
uniform mat4 m, n;
|
|
|
|
uniform mat4x3 um43;
|
|
uniform mat3x4 un34;
|
|
|
|
in vec4 v;
|
|
|
|
in vec3 u;
|
|
|
|
void main()
|
|
{
|
|
gl_FragColor = vec4(un34[1]);
|
|
gl_FragColor += vec4(Color * colorTransform, 1.0);
|
|
|
|
if (m != n)
|
|
gl_FragColor += v;
|
|
else {
|
|
gl_FragColor += m * v;
|
|
gl_FragColor += v * (m - n);
|
|
}
|
|
|
|
mat3x4 m34 = outerProduct(v, u);
|
|
m34 += mat3x4(v.x);
|
|
m34 += mat3x4(u, u.x, u, u.x, u, u.x);
|
|
|
|
if (m34 == un34)
|
|
gl_FragColor += m34 * u;
|
|
else
|
|
gl_FragColor += (un34 * um43) * v;
|
|
}
|