#version 400 | |
uniform bl { | |
uniform mat4 m4; | |
uniform mat3 m3; | |
} bName; | |
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() | |
{ | |
gl_Position = vec4(mxv(bName.m4, v3) + xf(bName.m3, v3), 1.0); | |
} |