2018-09-14 22:09:43 +00:00
|
|
|
#version 430
|
|
|
|
layout(location = 0) in vec3 vertex_position;
|
2018-09-15 01:29:05 +00:00
|
|
|
layout(location = 1) in vec3 vertex_normal;
|
2018-09-15 03:30:14 +00:00
|
|
|
layout(location = 2) in float vertex_specular_exponent;
|
|
|
|
layout(location = 3) in mat4 model_to_world;
|
2018-09-14 22:09:43 +00:00
|
|
|
|
|
|
|
layout(location = 0) uniform mat4 world_to_projection;
|
|
|
|
|
2018-09-15 01:29:05 +00:00
|
|
|
out vec3 fragment_position;
|
|
|
|
out vec3 fragment_normal;
|
2018-09-15 03:30:14 +00:00
|
|
|
out float fragment_specular_exponent;
|
2018-09-15 01:29:05 +00:00
|
|
|
|
2018-09-14 22:09:43 +00:00
|
|
|
void main()
|
|
|
|
{
|
2018-09-15 01:29:05 +00:00
|
|
|
vec4 model_position = model_to_world * vec4(vertex_position, 1.0);
|
|
|
|
vec4 model_normal = model_to_world * vec4(vertex_normal, 0.0);
|
|
|
|
gl_Position = world_to_projection * model_position;
|
|
|
|
fragment_position = model_position.xyz;
|
|
|
|
fragment_normal = model_normal.xyz;
|
2018-09-15 03:30:14 +00:00
|
|
|
fragment_specular_exponent = vertex_specular_exponent;
|
2018-09-14 22:09:43 +00:00
|
|
|
}
|