24 lines
		
	
	
		
			652 B
		
	
	
	
		
			Plaintext
		
	
			
		
		
	
	
			24 lines
		
	
	
		
			652 B
		
	
	
	
		
			Plaintext
		
	
| shader_type canvas_item;
 | |
| 
 | |
| uniform float vignette_intensity = 0.4;
 | |
| uniform float vignette_opacity : hint_range(0.0, 1.0) = 0.5;
 | |
| uniform vec4 vignette_rgb : source_color = vec4(0.0, 0.0, 0.0, 1.0);
 | |
| 
 | |
| uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap;
 | |
| 
 | |
| float vignette(vec2 uv) {
 | |
| 	uv *= 1.0 - uv.xy;
 | |
| 	float vignette = uv.x * uv.y * 15.0;
 | |
| 	return pow(vignette, vignette_intensity * vignette_opacity);
 | |
| }
 | |
| 
 | |
| void fragment() {
 | |
| 	vec4 color = texture(SCREEN_TEXTURE, SCREEN_UV);
 | |
| 	vec4 text = texture(TEXTURE, UV);
 | |
| 	
 | |
| 	text.rgba *= (vignette_rgb.rgba);
 | |
| 	text.rgba *= (1.0 - vignette(UV));
 | |
| 	
 | |
| 	COLOR = vec4((text.rgb) * color.rgb, text.a);
 | |
| }
 |