shader_type canvas_item; uniform float grayscale_intensity : hint_range(0.0, 1.0) = 0.0; uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap; void fragment() { vec4 color = texture(SCREEN_TEXTURE, SCREEN_UV); float average = (color.r + color.g + color.b) / 3.0; COLOR = vec4(vec3(average), grayscale_intensity); }