37 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
// NOTE: Shader automatically converted from Godot Engine 4.1.3.stable.mono's StandardMaterial3D.
 | 
						|
 | 
						|
shader_type spatial;
 | 
						|
render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_burley,specular_disabled,unshaded,shadows_disabled,ambient_light_disabled, depth_test_disabled;
 | 
						|
uniform float grow;
 | 
						|
uniform sampler2D colors : source_color, repeat_disable;
 | 
						|
uniform float charge = 1.0;
 | 
						|
 | 
						|
void vertex() {
 | 
						|
	// Billboarding
 | 
						|
	MODELVIEW_MATRIX = VIEW_MATRIX * mat4(INV_VIEW_MATRIX[0], INV_VIEW_MATRIX[1], INV_VIEW_MATRIX[2], MODEL_MATRIX[3]);
 | 
						|
	MODELVIEW_NORMAL_MATRIX = mat3(MODELVIEW_MATRIX);
 | 
						|
	VERTEX+=NORMAL*grow;
 | 
						|
	
 | 
						|
	
 | 
						|
	float speed = pow(2.0, ((charge+.4)*5.0));
 | 
						|
	float dy = sin(speed*.7) * 0.005;
 | 
						|
	float dx = sin(speed) * 0.005;
 | 
						|
	VERTEX.y += dy;
 | 
						|
	VERTEX.x += dx;
 | 
						|
}
 | 
						|
uniform sampler2D alpha_falloff : repeat_disable;
 | 
						|
 | 
						|
void fragment() {
 | 
						|
	float where = distance(UV, vec2(0.5))*2.0;
 | 
						|
	if (where >= charge) {
 | 
						|
		discard;
 | 
						|
	}
 | 
						|
	vec2 buv = floor(UV * 350.0);
 | 
						|
	int bx = int(buv.x);
 | 
						|
	int by = int(buv.y);
 | 
						|
	int amount = 2;
 | 
						|
	
 | 
						|
	ALPHA = texture(alpha_falloff, vec2(where/charge)).r;
 | 
						|
	
 | 
						|
	ALBEDO = texture(colors, vec2(where)).rgb;
 | 
						|
}
 |