PixelWars/shaders/skybox.frag.glsl
2016-06-02 14:40:44 +02:00

33 lines
878 B
GLSL

#version 330 core
uniform sampler2D frontMap;
uniform sampler2D backMap;
uniform vec3 camera;
uniform vec2 worldSize;
uniform vec2 screenSize;
uniform float flatSphere;
uniform float surfaceRatio;
in vec2 texCoord;
in vec3 normal;
out vec4 outColor;
void main()
{
// looping the world in the shape of a toreiller (infinite flat surface)
vec2 worldCoord = texCoord*worldSize + camera.xy*worldSize + (texCoord-vec2(0.25, 0.5))*surfaceRatio*worldSize;
vec2 texCoordWorld = worldCoord / worldSize;
ivec2 nbRevolutions = ivec2(floor(texCoordWorld));
vec3 texColor;
texCoordWorld = mod(texCoordWorld, 1);
if(abs(mod(nbRevolutions.y+nbRevolutions.x, 2)) > 0.5)
texColor = texture(backMap, texCoordWorld).xyz;
else
texColor = texture(frontMap, texCoordWorld).xyz;
// computing lighting
outColor = vec4(texColor, 1.0);
}