#version 330 core // - Position in view space layout (location = 0) out vec4 outPosition; // - Albedo + Roughness layout (location = 1) out vec4 outAlbedo; // - Normal buffer layout (location = 2) out vec3 outNormal; // - Emission + Metallic layout (location = 3) out vec4 outEmission; in vec3 varTexCoord; in vec4 posInView; out vec4 outColor; uniform samplerCube skybox; uniform float skybox_distance; void main() { outPosition = posInView; outPosition.z = -skybox_distance; outAlbedo.rgb = vec3(0., 0., 0.); // black outAlbedo.a = 1.; // full roughness outEmission.a = 0.; // not metallic outNormal = vec3(0., 0., 1.); // oriented towards the eye outEmission.rgb = texture(skybox, varTexCoord).rgb; }