1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#version 450
layout(std140, binding = 0) uniform uniforms_Block {
mat4 model;
mat4 view_proj;
mat4 normal_mat;
} uniforms;
layout(location = 0) in vec3 in_position;
layout(location = 1) in vec3 in_normal;
layout(location = 2) in vec2 in_uv;
layout(location = 0) out vec2 out_uv;
layout(location = 1) out vec3 out_normal;
void main() {
vec3 pos = in_position;
vec4 world_pos = (uniforms.model * vec4(pos, 1.0));
vec4 clip_pos = (uniforms.view_proj * world_pos);
gl_Position = clip_pos;
out_uv = in_uv;
out_normal = normalize((uniforms.normal_mat * vec4(in_normal, 0.0)).xyz);
}