Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #version 130
- #define pi 3.141592654
- in vec2 fragTexCoord;
- in vec4 fragColor;
- uniform sampler2D texture0;
- uniform vec4 colDiffuse;
- out vec4 finalColor;
- vec3 to_focus(float pixel)
- {
- pixel = mod(pixel + 3.0, 3.0);
- if (pixel >= 2.0) return vec3(pixel - 2.0, 0.0, 3.0 - pixel); // Blue
- else if (pixel >= 1.0) return vec3(0.0, 2.0 - pixel, pixel - 1.0); Green
- else return vec3(1.0 - pixel, pixel, 0.0); // Red
- }
- void main()
- {
- vec2 textureSize = vec2(160.0, 144.0);
- float y = mod(fragTexCoord.y * textureSize.y, 1.0);
- float intensity = exp(-0.4 * y);
- vec2 one_x = vec2(1.0 / (10.0 * textureSize.x), 0.0);
- vec3 color = texture(texture0, fragTexCoord - 0.0 * one_x).rgb;
- vec3 color_prev = texture(texture0, fragTexCoord - 1.0 * one_x).rgb;
- vec3 color_prev_prev = texture(texture0, fragTexCoord - 2.0 * one_x).rgb;
- float pixel_x = 3.0 * fragTexCoord.x * textureSize.y;
- vec3 focus = to_focus(pixel_x - 0.0);
- vec3 focus_prev = to_focus(pixel_x - 1.0);
- vec3 focus_prev_prev = to_focus(pixel_x - 2.0);
- vec3 result = 0.8 * color * focus + 0.6 * color_prev * focus_prev + 0.2 * color_prev_prev * focus_prev_prev;
- result = 1.6 * pow(result, vec3(1.0));
- finalColor = vec4((intensity) * result, 1.0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement