Created
August 22, 2015 00:02
-
-
Save rasteron/ef9df70fafc5aa2b1945 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "Uniforms.glsl" | |
#include "Samplers.glsl" | |
#include "Transform.glsl" | |
#include "ScreenPos.glsl" | |
varying vec2 vScreenPos; | |
uniform float rt_w; | |
uniform float rt_h; | |
uniform float stitching_size = 8.0; | |
uniform int invert = 1; | |
void VS() | |
{ | |
mat4 modelMatrix = iModelMatrix; | |
vec3 worldPos = GetWorldPos(modelMatrix); | |
gl_Position = GetClipPos(worldPos); | |
vScreenPos = GetScreenPosPreDiv(gl_Position); | |
} | |
vec4 PostFX(sampler2D tex, vec2 uv) | |
{ | |
float rt_w = 1024.0; | |
float rt_h = 768.0; | |
vec4 c = vec4(0.0); | |
float size = stitching_size; | |
vec2 cPos = uv * vec2(rt_w, rt_h); | |
vec2 tlPos = floor(cPos / vec2(size, size)); | |
tlPos *= size; | |
int remX = int(mod(cPos.x, size)); | |
int remY = int(mod(cPos.y, size)); | |
if (remX == 0 && remY == 0) | |
tlPos = cPos; | |
vec2 blPos = tlPos; | |
blPos.y += (size - 1.0); | |
if ((remX == remY) || | |
(((int(cPos.x) - int(blPos.x)) == (int(blPos.y) - int(cPos.y))))) | |
{ | |
if (invert == 1) | |
c = vec4(0.2, 0.15, 0.05, 1.0); | |
else | |
c = texture2D(tex, tlPos * vec2(1.0/rt_w, 1.0/rt_h)) * 1.4; | |
} | |
else | |
{ | |
if (invert == 1) | |
c = texture2D(tex, tlPos * vec2(1.0/rt_w, 1.0/rt_h)) * 1.4; | |
else | |
c = vec4(0.0, 0.0, 0.0, 1.0); | |
} | |
return c; | |
} | |
void PS() | |
{ | |
vec2 uv = vScreenPos.xy; | |
gl_FragColor = PostFX(sDiffMap, uv); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment