38 lines
990 B
GLSL
38 lines
990 B
GLSL
#version 450 core
|
|
in vec2 vTexPos;
|
|
out vec4 fColor;
|
|
layout (location = 0) uniform vec2 screensize;
|
|
layout(binding = 0) uniform sampler2D screenTexture;
|
|
vec3 f (float x, float y)
|
|
//{ return texture(screenTexture, vTexPos + vec2((x+0.5)/screensize.x,(y+0.5)/screensize.y)).xyz;
|
|
{ return texture(screenTexture, vTexPos + vec2(x/screensize.x,y/screensize.y)).xyz;
|
|
}
|
|
bool t (vec3 x, vec3 y)
|
|
{ return dot(x-y,x-y) < 0.1;
|
|
}
|
|
bool t3 (vec3 x, vec3 y, vec3 z)
|
|
{ return t(x,y) && t(y,z);
|
|
}
|
|
void main()
|
|
{
|
|
vec3 tl = f(-1, 1);
|
|
vec3 tt = f( 0, 2);
|
|
vec3 tr = f( 1, 1);
|
|
vec3 mr = f( 2, 0);
|
|
vec3 br = f( 1,-1);
|
|
vec3 bb = f( 0,-2);
|
|
vec3 bl = f(-1,-1);
|
|
vec3 ml = f(-2, 0);
|
|
if (t3(tt,tr,mr))
|
|
{ fColor = vec4(tr,1);}
|
|
else if (t3(mr,br,bb))
|
|
{ fColor = vec4(br,1);}
|
|
else if (t3(bb,bl,ml))
|
|
{ fColor = vec4(bl,1);}
|
|
else if (t3(ml,tl,tt))
|
|
{ fColor = vec4(tl,1);}
|
|
else
|
|
//{fColor = texture(screenTexture, vTexPos); }
|
|
{fColor = vec4(f(0,0),1); }
|
|
}
|