CSC8502_Advanced_Graphics_For_Games / Shaders / reflectFragment.glsl
reflectFragment.glsl
Raw
#version 330 core

uniform sampler2D diffuseTex;
uniform samplerCube cubeTex;

uniform vec3 cameraPos;

in Vertex {
	vec4 colour;
	vec2 texCoord;
	vec3 normal;
	vec3 worldPos;
} IN;

out vec4 fragColour;

void main ( void ) {
	vec4 diffuse = texture (diffuseTex , IN.texCoord);
	vec3 viewDir = normalize (cameraPos - IN.worldPos);

	vec3 reflectDir = reflect(-viewDir , normalize (IN.normal));
	vec4 reflectTex = texture(cubeTex , reflectDir);

	fragColour = reflectTex + (diffuse * 0.25f );
}