#version 450 layout(location = 0) in vec4 a_Pos; layout(location = 1) in vec4 a_Normal; layout(location = 2) in vec2 a_Uv; layout(location = 0) out vec3 v_Normal; layout(location = 1) out vec4 v_Position; layout(location = 2) out vec2 v_Uv; layout(set = 0, binding = 0) uniform Globals { mat4 u_ViewProj; uvec4 u_NumLights; }; layout(set = 1, binding = 0) uniform Entity { mat4 u_World; vec4 u_Color; }; void main() { v_Uv = a_Uv; v_Normal = mat3(u_World) * vec3(a_Normal.xyz); v_Position = u_World * vec4(a_Pos); gl_Position = u_ViewProj * v_Position; }