2026-11-08 21:31:52 +01:00

24 lines
532 B
GLSL

#version 330 core
layout (location = 0) in vec3 a_position;
layout (location = 1) in vec3 a_normal;
layout (location = 2) in vec2 a_uv;
uniform mat4 u_model;
uniform mat4 u_view;
uniform mat4 u_projection;
out vec3 frag_position;
out vec3 frag_normal;
out vec2 frag_uv;
void main()
{
vec4 world_position = u_model * vec4(a_position, 1.0);
gl_Position = u_projection * u_view * world_position;
frag_position = world_position.xyz;
frag_normal = mat3(transpose(inverse(u_model))) * a_normal;
frag_uv = a_uv;
}