29 lines
686 B
GLSL

#version 440
out vec4 FragColors;
in vec3 reflectDir;
in vec3 refractDir_R;
in vec3 refractDir_G;
in vec3 refractDir_B;
in float reflectFactor;
uniform bool DrawSkyBox;
uniform samplerCube CubeMapTex;
void main()
{
vec4 reflectColor = texture(CubeMapTex, reflectDir);
if (DrawSkyBox == true)
FragColors = reflectColor;
else
{
float refractColor_R = texture(CubeMapTex, refractDir_R).r;
float refractColor_G = texture(CubeMapTex, refractDir_G).g;
float refractColor_B = texture(CubeMapTex, refractDir_B).b;
vec4 refractColor = vec4(refractColor_R, refractColor_G, refractColor_B, 1);
FragColors = vec4(mix(refractColor, reflectColor, reflectFactor));
}
}