Files
tgcc/core/daynight/snow.gdshader

19 lines
565 B
Plaintext

shader_type spatial;
render_mode blend_mix, depth_draw_opaque;
global uniform float global_snow_amount;
uniform vec4 snow_color : source_color = vec4(0.95, 0.98, 1.0, 1.0);
void fragment() {
vec3 world_normal = (INV_VIEW_MATRIX * vec4(NORMAL, 0.0)).xyz;
float up_dot = dot(world_normal, vec3(0.0, 1.0, 0.0));
float snow_mask = smoothstep(1.0 - global_snow_amount, 1.1 - global_snow_amount, up_dot);
snow_mask *= step(0.01, global_snow_amount);
ALBEDO = snow_color.rgb;
ALPHA = snow_mask;
ROUGHNESS = 0.3;
SPECULAR = 0.5;
}