28 lines
		
	
	
		
			No EOL
		
	
	
		
			737 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			No EOL
		
	
	
		
			737 B
		
	
	
	
		
			Text
		
	
	
	
	
	
//MADE BY : @ahopness
 | 
						|
//LICENSE : CC0
 | 
						|
//COMATIBLE WITH : GLES2, GLES3, WEBGL
 | 
						|
 | 
						|
shader_type canvas_item;
 | 
						|
 | 
						|
 | 
						|
uniform float sort :hint_range(0.0, 2.6)= .5;
 | 
						|
 | 
						|
void fragment(){
 | 
						|
	vec2 uv = FRAGCOORD.xy / (1.0 / SCREEN_PIXEL_SIZE).xy;
 | 
						|
 | 
						|
	// Pseudo Pixel Sorting
 | 
						|
	float sortThreshold = 1.0 - clamp(sort / 2.6, 0.0, 1.0);
 | 
						|
	vec2 sortUv = vec2(uv.x, sortThreshold);
 | 
						|
 | 
						|
	// Curved melting transition
 | 
						|
	vec2 transitionUV = uv;
 | 
						|
	transitionUV.y += pow(sort, 2.0 + (sort * 2.0)) * uv.x * fract(sin(dot(vec2(transitionUV.x), vec2(12.9, 78.2)))* 437.5);
 | 
						|
	COLOR = texture(TEXTURE, transitionUV);
 | 
						|
 | 
						|
	// Draw pixel sorting effect behind the melting transition
 | 
						|
	if(transitionUV.y > 1.){
 | 
						|
		COLOR = texture(TEXTURE, sortUv);
 | 
						|
	}else{
 | 
						|
		COLOR = texture(TEXTURE, uv);
 | 
						|
	}
 | 
						|
} |