43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| shader_type spatial;
 | |
| 
 | |
| render_mode  unshaded;
 | |
| 
 | |
| #include "res://addons/rokojori_action_library/Runtime/Shading/Library/Math.gdshaderinc"
 | |
| #include "res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc"
 | |
| #include "res://addons/rokojori_action_library/Runtime/Shading/Library/Noise.gdshaderinc"
 | |
| #include "res://addons/rokojori_action_library/Runtime/Shading/Library/Light.gdshaderinc"
 | |
| 
 | |
| 
 | |
| uniform vec4 albedo : source_color;
 | |
| uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable;
 | |
| uniform float alpha_scissor_threshold : hint_range(0.0, 1.0, 0.001);
 | |
| 
 | |
| uniform float alpha_antialiasing_edge : hint_range(0.0, 1.0, 0.01);
 | |
| uniform ivec2 albedo_texture_size;
 | |
| 
 | |
| uniform float centerDistance = 100;
 | |
| uniform float rangeDistance  = 50;
 | |
| 
 | |
| void vertex()
 | |
| {
 | |
| 
 | |
| }
 | |
| 
 | |
| void fragment()
 | |
| {
 | |
|   vec4 albedo_tex = texture( texture_albedo, UV);
 | |
|   vec3 worldPosition = ( INV_VIEW_MATRIX * vec4( VERTEX, 1.0 ) ).xyz;
 | |
|   float worldDistance = length( worldPosition - CAMERA_POSITION_WORLD );
 | |
|   float range = rangeDistance / 2.0;
 | |
|   float value = normalizeToRange01( worldDistance,
 | |
|    centerDistance - range, centerDistance + range
 | |
|   );
 | |
| 
 | |
| 	ALBEDO = vec3( 1, 1, 1 ) * value;
 | |
| 
 | |
| 	ALPHA *= albedo.a * albedo_tex.a;
 | |
| 	ALPHA_SCISSOR_THRESHOLD = alpha_scissor_threshold;
 | |
| 	ALPHA_ANTIALIASING_EDGE = alpha_antialiasing_edge;
 | |
| 	ALPHA_TEXTURE_COORDINATE = UV * vec2(albedo_texture_size);
 | |
| }
 |