2016-02-16 06:58:50 +03:00
|
|
|
#version 400
|
2015-05-16 00:32:46 +03:00
|
|
|
|
2016-02-16 06:58:50 +03:00
|
|
|
uniform bl {
|
|
|
|
uniform mat4 m4;
|
|
|
|
uniform mat3 m3;
|
|
|
|
} bName;
|
2015-05-16 00:32:46 +03:00
|
|
|
|
|
|
|
in vec3 v3;
|
|
|
|
|
|
|
|
vec3 xf(mat3 m, vec3 v)
|
|
|
|
{
|
|
|
|
return v * m;
|
|
|
|
}
|
|
|
|
|
|
|
|
mat3 Mat3(mat4 m)
|
|
|
|
{
|
|
|
|
return mat3(m[0].xyz, m[1].xyz, m[2].xyz);
|
|
|
|
}
|
|
|
|
|
|
|
|
vec3 mxv(mat4 m4, vec3 v)
|
|
|
|
{
|
|
|
|
return v * Mat3(m4);
|
|
|
|
}
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
2016-02-16 06:58:50 +03:00
|
|
|
gl_Position = vec4(mxv(bName.m4, v3) + xf(bName.m3, v3), 1.0);
|
2015-05-16 00:32:46 +03:00
|
|
|
}
|