#version 430 layout (binding = 1) uniform sampler2D worldPositionSamp; layout (binding = 2) uniform sampler2D worldNormalSamp; layout (binding = 3) uniform sampler2D worldColorSamp; in vec2 varTextureCoord; out vec4 color; vec3 lightPosition = vec3(16, 20, 16); vec3 lightColor = vec3(1, 1, 1); uniform vec3 viewPos; void main() { // retrieve data from G-buffer vec3 FragPos = texture(worldPositionSamp, varTextureCoord).rgb; vec3 Normal = texture(worldNormalSamp, varTextureCoord).rgb; vec3 Albedo = vec3(1, 1, 1);//texture(gAlbedoSpec, TexCoords).rgb; float Specular = 0.7;//texture(gAlbedoSpec, TexCoords).a; // then calculate lighting as usual vec3 lighting = Albedo * 0.1; // hard-coded ambient component vec3 viewDir = normalize(viewPos - FragPos); //for(int i = 0; i < NR_LIGHTS; ++i) //{ // diffuse vec3 lightDir = normalize(lightPosition - FragPos); vec3 diffuse = max(dot(Normal, lightDir), 0.0) * Albedo * lightColor; lighting += diffuse; //} color = vec4(lighting, 1.0) * texture(worldColorSamp, varTextureCoord); }