#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); }