45 lines
922 B
Plaintext
45 lines
922 B
Plaintext
@vs vs
|
|
in vec2 aPos;
|
|
in vec2 aTexCoords;
|
|
|
|
out vec2 TexCoords;
|
|
|
|
void main()
|
|
{
|
|
gl_Position = vec4(aPos.x, aPos.y, 0.0, 1.0);
|
|
TexCoords = aTexCoords;
|
|
}
|
|
@end
|
|
|
|
@fs fs
|
|
in vec2 TexCoords;
|
|
out vec4 frag_color;
|
|
|
|
uniform texture2D diffuse;
|
|
uniform sampler smp;
|
|
uniform mpara {
|
|
uniform vec2 screensize;
|
|
};
|
|
|
|
void main()
|
|
{
|
|
vec4 color = texture(sampler2D(diffuse,smp), TexCoords);
|
|
float avg = 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
|
|
frag_color = vec4(avg,avg,avg,1.0);
|
|
float lc = screensize.y/2.0;
|
|
float line = TexCoords.y * lc;
|
|
float line_intensity = mod(float(line),2);
|
|
|
|
float off = line_intensity * 0.0005;
|
|
vec4 shift = vec4(off,0,0,0);
|
|
vec4 color_shift = vec4(0.001,0,0,0);
|
|
float r = color.r + color_shift.r + shift.r;
|
|
float g = color.g - color_shift.g + shift.g;
|
|
float b = color.b;
|
|
|
|
frag_color = vec4(r, g*0.99, b, 1.0) * clamp(line_intensity, 0.85, 1.0);
|
|
|
|
}
|
|
@end
|
|
|
|
@program crt vs fs |