NYXGFX/examples/assets/shaders/3D.vert

46 lines
937 B
GLSL
Raw Permalink Normal View History

2026-08-12 20:31:05 +01:00
#version 450
//
// IN
//
layout(location = 0) in vec3 in_position;
layout(location = 1) in vec3 in_normal;
layout(location = 2) in vec2 in_UV;
//
// OUT
//
layout(location = 0) out vec2 out_UV;
layout(location = 1) out vec3 out_normal;
layout(location = 2) out vec3 out_world_position;
//
// UNIFORMS
//
layout(set = 0, binding = 0) uniform Camera {
mat4 projection;
mat4 view;
} camera;
layout(set = 0, binding = 1) uniform Model {
mat4 model;
} object;
/// ----------------------------------------------------
/// ----------------------------------------------------
void main() {
// --- GET WORLD POSITION ---
vec4 world_position = object.model * vec4(in_position, 1.0);
// --- SHOW POSITION AT ---
gl_Position = camera.projection * camera.view * world_position;
// --- SET ---
out_UV = in_UV;
out_normal = mat3(transpose(inverse(object.model))) * in_normal;
out_world_position = world_position.xyz;
}