call-0.1.2: shaders/vertex.glsl
#version 330
uniform mat4 projection;
uniform mat4 matrices[13];
uniform int level;
uniform bool useEnv;
out vec2 UV;
out vec2 envUV;
in vec3 in_Position;
in vec2 in_UV;
in vec3 in_Normal;
out vec3 lightDir;
out vec3 normal;
void main(void) {
mat4 model = mat4(1.0);
for(int i=0; i < level; i++)
{
model *= matrices[i];
}
gl_Position = projection * model * vec4(in_Position, 1.0);
UV = in_UV;
if(useEnv)
{
vec3 refl = reflect( normalize(vec3(model * vec4(in_Position, 1.0))), in_Normal );
float m = 2.0 * sqrt( refl.x*refl.x + refl.y*refl.y + (refl.z+1.0)*(refl.z+1.0) );
envUV = refl.xy / m + 0.5;
}
normal = in_Normal;
lightDir = vec3(0.0);
}