b1a90a7f91
Shaders come in two flavours: - shaders/gl330: OpenGL 3.3+ (Windows, Linux, OSX) - shaders/gles100: OpenGL ES 2.0 (Android, RPI, HTML5)
54 lines
1.2 KiB
GLSL
54 lines
1.2 KiB
GLSL
# version 100
|
|
|
|
precision mediump float;
|
|
|
|
varying vec2 fragTexCoord;
|
|
|
|
uniform sampler2D texture0;
|
|
uniform vec4 tintColor;
|
|
|
|
// NOTE: Add here your custom variables
|
|
|
|
const float renderWidth = 1280;
|
|
const float renderHeight = 720;
|
|
|
|
float stitchingSize = 6.0f;
|
|
|
|
uniform int invert = 0;
|
|
|
|
vec4 PostFX(sampler2D tex, vec2 uv)
|
|
{
|
|
vec4 c = vec4(0.0);
|
|
float size = stitchingSize;
|
|
vec2 cPos = uv * vec2(renderWidth, renderHeight);
|
|
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/renderWidth, 1.0/renderHeight)) * 1.4;
|
|
}
|
|
else
|
|
{
|
|
if (invert == 1) c = texture2D(tex, tlPos * vec2(1.0/renderWidth, 1.0/renderHeight)) * 1.4;
|
|
else c = vec4(0.0, 0.0, 0.0, 1.0);
|
|
}
|
|
|
|
return c;
|
|
}
|
|
|
|
void main(void)
|
|
{
|
|
vec3 tc = PostFX(texture0, fragTexCoord).rgb;
|
|
|
|
gl_FragColor = vec4(tc, 1.0);
|
|
} |