30 lines
		
	
	
		
			869 B
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			869 B
		
	
	
	
		
			Plaintext
		
	
	
	
|   | 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 ); | ||
|  | } |