aurora-rendering-engine/shaders/gbuffer/gbuffer.frag

27 lines
750 B
GLSL

#version 430 core
in vec3 v_world_position;
in vec3 v_world_normal;
in vec2 v_texcoord;
flat in uint v_triangle_id_base;
uniform vec3 u_albedo;
uniform float u_metallic;
uniform float u_roughness;
layout(location = 0) out vec3 g_position;
layout(location = 1) out vec3 g_normal;
layout(location = 2) out vec4 g_albedo_metallic;
layout(location = 3) out vec2 g_roughness_ao;
layout(location = 4) out uint g_primitive_id;
void main() {
g_position = v_world_position;
g_normal = normalize(v_world_normal);
g_albedo_metallic = vec4(u_albedo, u_metallic);
g_roughness_ao = vec2(u_roughness, 1.0);
// Global primitive ID = mesh base + primitive id within draw call
g_primitive_id = v_triangle_id_base + uint(gl_PrimitiveID);
}