WHOLESOME VIBES
SHADER CAN BE ATTACHED TO A COLOR RECT ON CANVAS LAYER WHO COVERS FULL SCREEN
Shader code
shader_type canvas_item;
// This line fixes the error for Godot 4
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap;
uniform float brightness : hint_range(0.8, 1.5) = 1.08;
uniform float saturation : hint_range(0.8, 1.6) = 1.25;
uniform float vignette : hint_range(0.0, 0.6) = 0.25;
uniform float grain : hint_range(0.0, 0.08) = 0.018;
float rand(vec2 uv) {
return fract(sin(dot(uv, vec2(12.9898, 78.233))) * 43758.5453);
}
void fragment() {
// Now that SCREEN_TEXTURE is defined above, this line will work
vec4 col = texture(SCREEN_TEXTURE, SCREEN_UV);
// Boost brightness + saturation for wholesome vibrant look
vec3 gray = vec3(dot(col.rgb, vec3(0.299, 0.587, 0.114)));
col.rgb = mix(gray, col.rgb, saturation);
col.rgb *= brightness;
// Soft cozy vignette
vec2 uv = SCREEN_UV * 2.0 - 1.0;
float vig = 1.0 - dot(uv, uv) * vignette;
col.rgb *= vig;
// Very light warm grain
float noise = rand(SCREEN_UV + TIME) * 2.0 - 1.0;
col.rgb += noise * grain;
COLOR = col;
}
