Added README
[gl4] / vertex.glsl
1 #version 420
2 #extension GL_ARB_separate_shader_objects : enable
3
4 layout(std140, binding = 0) uniform matrix_state {
5         mat4 vmat;
6         mat4 projmat;
7         mat4 mvmat;
8         mat4 mvpmat;
9         vec3 light_pos;
10 } matrix;
11
12
13 layout(location = 0) in vec4 attr_vertex;
14 layout(location = 1) in vec3 attr_normal;
15 layout(location = 2) in vec2 attr_texcoord;
16
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;
21
22 void main()
23 {
24         gl_Position = matrix.mvpmat * attr_vertex;
25         vpos = (matrix.mvmat * attr_vertex).xyz;
26         norm = mat3(matrix.mvmat) * attr_normal;
27
28         texcoord = attr_texcoord * vec2(2.0, 1.0);
29
30         ldir = matrix.light_pos - vpos;
31 }
32