Skip to content

Dariasteam/godot_disolve_shader

Repository files navigation

Zelda BOTW like disolve shader for Godot Engine 3.1+

May not work on Godot 4

There are two versions, one made with the visual shader editor tool and another using code, for the sphere and the cube respectively.

Code version:

shader_type spatial;
render_mode cull_disabled, depth_draw_alpha_prepass;

uniform sampler2D noise_text;
uniform vec3 color;
uniform float velocity_factor;
uniform float dissolve_amount : hint_range(0.0, 1.0) = 0.5;

void fragment () {
	vec4 noise = texture(noise_text, UV);
	float input = dissolve_amount - 0.5;
	
	float cut_pass = noise.r + input;	
	float border_pass = cut_pass - 0.015;
	
	cut_pass = round(cut_pass);
	ALPHA = cut_pass;
		
	border_pass = round (border_pass);	
	border_pass = 1.0 - border_pass;
	
	vec3 final_border = vec3(border_pass); 
	final_border *= color;
		
	EMISSION = final_border;
}

Old Code Version (more similar to the visual shader one):

shader_type spatial;
render_mode cull_disabled, depth_draw_alpha_prepass;

uniform sampler2D noise_text;
uniform vec3 color;
uniform float velocity_factor;

void fragment () {
	vec4 noise = texture(noise_text, UV);
	float input = sin(TIME * velocity_factor) / 2.0;
	
	float cut_pass = noise.r + input;	
	float border_pass = cut_pass - 0.015;
	
	cut_pass = round(cut_pass);
	ALPHA = cut_pass;
		
	border_pass = round (border_pass);
	border_pass = 1.0 - border_pass;
	
	vec3 final_border = vec3(border_pass); 
	final_border *= color;
		
	EMISSION = final_border;
}

About

Zelda BOTW like disolve shader

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages