From a6c8da521cf795702080f31cfa911409e4efba2e Mon Sep 17 00:00:00 2001 From: Rost Alexeev <148265518+R0STUS@users.noreply.github.com> Date: Mon, 10 Jun 2024 16:43:47 +0200 Subject: [PATCH] Vignette effect to screen --- res/shaders/screen.glslf | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/res/shaders/screen.glslf b/res/shaders/screen.glslf index 0117b59f..edeb4270 100644 --- a/res/shaders/screen.glslf +++ b/res/shaders/screen.glslf @@ -2,8 +2,29 @@ in vec2 v_coord; out vec4 f_color; uniform sampler2D u_texture0; +uniform ivec2 u_screenSize; + +float random(vec2 st){ + return fract(sin(dot(st.xy ,vec2(12.9898,78.233))) * 43758.5453); +} + +// Vignette +vec4 apply_vignette(vec4 color) +{ + vec2 position = (gl_FragCoord.xy / u_screenSize) - vec2(0.5); + float dist = length(position); + + float radius = 0.88; + float softness = 0.365; + float vignette = smoothstep(radius, radius - softness, dist); + + color.rgb = color.rgb - (1.0 - vignette); + + return color; +} void main(){ f_color = texture(u_texture0, v_coord); + f_color = apply_vignette(f_color); }