#version 330 core
out vec4 FragColor;

uniform vec3 direction;
uniform vec3 lightPos; 
uniform vec3 lightColor;
uniform vec3 objectColor;
uniform vec3 viewPos;
uniform float cutOff;
uniform float cutOff2; 
uniform float visibility;
uniform int pcf;
uniform vec3 cameraPos;
uniform samplerCube cubemapTexture;
uniform mat4 viewM;
uniform sampler2D scene;

in vec3 TexCoords;
in vec3 Normal;  
in vec3 FragPos;
in vec4 smCoords;
in vec3 Position;


out vec3 color;

uniform sampler2D renderedTexture;
uniform float time;

uniform sampler2D shadowMap;

void main(){    

	//refraction
	float ratio = 1.0 / 1.0;
    vec3 I = normalize(FragPos - cameraPos);
    vec3 R = refract(I, normalize(Normal), ratio);
    FragColor = vec4(texture(cubemapTexture, R).rgb, 1.0);

	/*vec3 I = normalize(FragPos - cameraPos);
    vec3 R = reflect(I, normalize(Normal));
    FragColor = vec4(texture(cubemapTexture, R).rgb, 1.0);*/


	/*vec3 I = normalize(FragPos - cameraPos);
	vec3 N = normalize(Normal);

	vec3 R = reflect(I, N);
	R = vec3(inverse(viewM) * vec4(R, 0.0));
	FragColor = (texture(cubemapTexture, R));*/


	//FragColor = texture(cubemapTexture, TexCoords);
}