2 #extension GL_ARB_separate_shader_objects : enable
4 layout(std140, binding = 0) uniform matrix_state {
13 layout(location = 0) in vec4 attr_vertex;
14 layout(location = 1) in vec3 attr_normal;
15 layout(location = 2) in vec2 attr_texcoord;
17 layout(location = 3) out vec3 vpos;
18 layout(location = 4) out vec3 norm;
19 layout(location = 5) out vec3 ldir;
20 layout(location = 6) out vec2 texcoord;
24 gl_Position = matrix.mvpmat * attr_vertex;
25 vpos = (matrix.mvmat * attr_vertex).xyz;
26 norm = mat3(matrix.mvmat) * attr_normal;
28 texcoord = attr_texcoord * vec2(2.0, 1.0);
30 ldir = matrix.light_pos - vpos;