27 lines
750 B
GLSL
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);
|
|
}
|