#version 430

uniform vec3 La;
uniform float Gamma;

layout (binding=0) uniform sampler2D DiffuseTexture;
layout (binding=1) uniform sampler2D LightingTexture;
layout (binding=2) uniform sampler2D ShadowTexture;

in VertexData
{
	vec3 Position;
	vec2 TextureCoord;
} Input;

out vec4 FragmentColor;

void main()
{
	vec4 DiffuseTexel = texture(DiffuseTexture, Input.TextureCoord);
	vec4 LightingTexel = texture(LightingTexture, Input.TextureCoord);
	vec4 ShadowTexel = texture(ShadowTexture, Input.TextureCoord);


	vec4 _FragmentColor = DiffuseTexel * vec4(La, 1.0) + LightingTexel;
	FragmentColor = vec4(pow(_FragmentColor.rgb, vec3(1.0 / Gamma)), _FragmentColor.a);
	//FragmentColor = DiffuseTexel;

}