21 lines
669 B
Plaintext
21 lines
669 B
Plaintext
// Thanks YouTube and DevPoodle
|
|
// https://www.youtube.com/watch?v=E401x98N6iA
|
|
|
|
shader_type canvas_item;
|
|
render_mode unshaded, skip_vertex_transform;
|
|
|
|
const float curvature = 3.2;
|
|
|
|
uniform sampler2D screen_texture: hint_screen_texture;
|
|
|
|
void fragment() {
|
|
vec2 centered_uv = SCREEN_UV * 2.0 - 1.0;
|
|
vec2 uv_offset = centered_uv.yx / curvature;
|
|
vec2 warped_uv = centered_uv + centered_uv * uv_offset * uv_offset;
|
|
vec3 cutoff = vec3(step(abs(warped_uv.x), 1.0) * step(abs(warped_uv.y), 1.0));
|
|
|
|
vec3 screen_color = texture(screen_texture, (warped_uv + 1.0) / 2.0).rgb;
|
|
//COLOR = vec4(warped_uv, 0.0, 1.0);
|
|
COLOR = texture(screen_texture, (warped_uv + 1.0) / 2.0);
|
|
}
|