shader_type canvas_item; uniform float displacement_coefficient_x; void fragment() { vec4 environment_color = texture(SCREEN_TEXTURE, SCREEN_UV); vec4 sprite_color = texture(TEXTURE, UV); float gradient_factor = step(UV.y, 1); if(sprite_color.a > 0.1){ COLOR = mix(environment_color, sprite_color, gradient_factor); } else{ COLOR = sprite_color } } void vertex() { VERTEX += vec2(displacement_coefficient_x,0.0) * (1.0 - UV.y); }