You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  | shader_type spatial; | 
					
						
							|  |  |  | render_mode depth_prepass_alpha,unshaded; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | uniform sampler2D tex : source_color,filter_nearest; | 
					
						
							|  |  |  | uniform float flash_white; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | uniform vec2 deformation_dir = vec2(1, 0); | 
					
						
							|  |  |  | uniform float deformation_rate = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void vertex() { | 
					
						
							|  |  |  | 	if (length(deformation_dir)>0.0){ | 
					
						
							|  |  |  | 		vec2 dir_center = VERTEX.xy; | 
					
						
							|  |  |  | 		vec2 dir = normalize(deformation_dir.yx); | 
					
						
							|  |  |  | 		vec2 dir1 = dir * deformation_rate; | 
					
						
							|  |  |  | 		vec2 dir2 = cross(vec3(0, 0, 1), vec3(dir, 0)).xy * deformation_rate; | 
					
						
							|  |  |  | 		vec2 offset1 = -dot(dir1, dir_center) * dir1; | 
					
						
							|  |  |  | 		vec2 offset2 = dot(dir2, dir_center) * dir2; | 
					
						
							|  |  |  | 		VERTEX.xy += offset1 + offset2; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void fragment() { | 
					
						
							|  |  |  | 	vec4 col = texture(tex, UV); | 
					
						
							|  |  |  | 	if(col.a<0.5){discard;} | 
					
						
							|  |  |  | 	if(flash_white>0.0){ | 
					
						
							|  |  |  | 		col.rgb = col.rgb * (flash_white + 1.0) * vec3(1,1,1); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	ALBEDO = col.rgb; | 
					
						
							|  |  |  | 	ALPHA = 1.0; | 
					
						
							|  |  |  | } |