shader_type canvas_item; #include "res://Scripts/Rokojori/Rokojori-Action-Library/Runtime/Shading/Library/Colors.gdshaderinc" #include "res://Scripts/Rokojori/Rokojori-Action-Library/Runtime/Shading/Library/Math.gdshaderinc" uniform sampler2D screenTexture: hint_screen_texture, repeat_disable, filter_linear_mipmap; uniform sampler2D overlay; uniform float effectStrength: hint_range(0,1) = 1; void fragment() { vec4 rgb = texture( screenTexture, UV ); vec4 originalRGB = rgb; vec4 overlayColor = texture( overlay, UV ); vec4 additiveOverlayColor = overlayColor + rgb; vec4 multipliedOverlayColor = overlayColor * rgb; float overlayBlendType = length( overlayColor.rgb ); vec4 mixed = mix3_v4( multipliedOverlayColor, rgb, additiveOverlayColor, overlayBlendType ); rgb = mixed; COLOR = mix( originalRGB, mixed, effectStrength ); }