Advertisement
Guest User

Untitled

a guest
Mar 26th, 2024
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. shader_type canvas_item;
  2.  
  3. uniform int levels = 3;
  4. uniform float spread = 0.01;
  5. uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap;
  6.  
  7.  
  8. void fragment(){
  9.     vec3 sum;
  10.     COLOR.rgb = vec3(0);
  11.     vec2 offset = (UV - vec2(0.5))*vec2(1,-1);
  12.     for(int i = 0; i < levels; i++){
  13.         float t = 2.0*float(i)/float(levels-1); // range 0.0->2.0
  14.         vec3 slice = vec3(1.0-t, 1.0 - abs(t - 1.0), t - 1.0);
  15.         slice = max(slice, 0.0);
  16.         sum += slice;
  17.         vec2 slice_offset = (t-1.0)*spread*offset;
  18.         COLOR.rgb += slice * texture(SCREEN_TEXTURE, SCREEN_UV + slice_offset).rgb;
  19.     }
  20.     COLOR.rgb /= sum;
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement