fix snow for grass
This commit is contained in:
@@ -13,6 +13,7 @@ global uniform float global_snow_accumulation_speed = 0.005;
|
|||||||
global uniform float global_snow_melt_time = -1.0;
|
global uniform float global_snow_melt_time = -1.0;
|
||||||
global uniform float global_snow_melt_speed = 0.1;
|
global uniform float global_snow_melt_speed = 0.1;
|
||||||
global uniform float global_snow_amount = 0.0;
|
global uniform float global_snow_amount = 0.0;
|
||||||
|
global uniform vec4 global_snow_color = vec4(0.92, 0.96, 1.0, 1.0);
|
||||||
global uniform float global_rain_intensity;
|
global uniform float global_rain_intensity;
|
||||||
|
|
||||||
// --- PARAMETRI ESTETICI ---
|
// --- PARAMETRI ESTETICI ---
|
||||||
@@ -133,7 +134,7 @@ void fragment() {
|
|||||||
// Applichiamo la variazione al colore finale dell'erba
|
// Applichiamo la variazione al colore finale dell'erba
|
||||||
vec3 varied_grass_color = mix(v_final_color, variance_color.rgb, noise_sample * variance_intensity);
|
vec3 varied_grass_color = mix(v_final_color, variance_color.rgb, noise_sample * variance_intensity);
|
||||||
|
|
||||||
float snow_amount = smoothstep(0.0, 1.0, get_snow_progress());
|
float snow_amount = pow(get_snow_progress(), 0.55);
|
||||||
|
|
||||||
float top_mask = 1.0 - shifted_uv.y;
|
float top_mask = 1.0 - shifted_uv.y;
|
||||||
float snow_start = 1.0 - clamp(snow_coverage, 0.05, 1.0);
|
float snow_start = 1.0 - clamp(snow_coverage, 0.05, 1.0);
|
||||||
@@ -141,8 +142,9 @@ void fragment() {
|
|||||||
snow_mask *= step(0.01, snow_amount);
|
snow_mask *= step(0.01, snow_amount);
|
||||||
snow_mask = clamp(snow_mask, 0.0, 1.0);
|
snow_mask = clamp(snow_mask, 0.0, 1.0);
|
||||||
|
|
||||||
vec3 dark_snow = snow_color.rgb * (1.0 - shadow_intensity);
|
vec3 snow_base_color = max(snow_color.rgb, global_snow_color.rgb);
|
||||||
vec3 shaded_snow = mix(dark_snow, snow_color.rgb, v_shade_factor);
|
float snow_light = mix(0.82, 1.0, max(v_shade_factor, 0.35));
|
||||||
|
vec3 shaded_snow = clamp(snow_base_color * snow_light, 0.0, 1.0);
|
||||||
|
|
||||||
// Mescoliamo il colore variato con la neve
|
// Mescoliamo il colore variato con la neve
|
||||||
vec3 final_albedo = mix(varied_grass_color, shaded_snow, snow_mask);
|
vec3 final_albedo = mix(varied_grass_color, shaded_snow, snow_mask);
|
||||||
|
|||||||
@@ -111,8 +111,8 @@ void fragment() {
|
|||||||
float snow_mask = smoothstep(1.0 - snow_amount * 1.35, 1.08 - snow_amount * 1.35, top_mask) * snow_visibility;
|
float snow_mask = smoothstep(1.0 - snow_amount * 1.35, 1.08 - snow_amount * 1.35, top_mask) * snow_visibility;
|
||||||
snow_mask *= step(0.01, snow_amount);
|
snow_mask *= step(0.01, snow_amount);
|
||||||
|
|
||||||
vec3 dark_snow = global_snow_color.rgb * (1.0 - shadow_intensity);
|
float snow_light = mix(0.82, 1.0, max(v_shade_factor, 0.35));
|
||||||
vec3 shaded_snow = mix(dark_snow, global_snow_color.rgb, v_shade_factor);
|
vec3 shaded_snow = clamp(global_snow_color.rgb * snow_light, 0.0, 1.0);
|
||||||
vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
|
vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
|
||||||
|
|
||||||
// Rain wetness: darken and make shinier
|
// Rain wetness: darken and make shinier
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ shader_parameter/variance_scale = 0.1
|
|||||||
shader_parameter/variance_color = Color(0.09803922, 0.18039216, 0.05490196, 1)
|
shader_parameter/variance_color = Color(0.09803922, 0.18039216, 0.05490196, 1)
|
||||||
shader_parameter/variance_intensity = 0.90000004275
|
shader_parameter/variance_intensity = 0.90000004275
|
||||||
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
||||||
shader_parameter/snow_visibility = 1.0
|
shader_parameter/snow_visibility = 1.6
|
||||||
shader_parameter/snow_coverage = 0.35
|
shader_parameter/snow_coverage = 0.65
|
||||||
shader_parameter/height_min = 0.0
|
shader_parameter/height_min = 0.0
|
||||||
shader_parameter/height_max = 5.0
|
shader_parameter/height_max = 5.0
|
||||||
shader_parameter/shadow_intensity = 0.610000028975
|
shader_parameter/shadow_intensity = 0.610000028975
|
||||||
|
|||||||
@@ -28,8 +28,8 @@ shader_parameter/variance_scale = 0.06
|
|||||||
shader_parameter/variance_color = Color(0.3, 0.5, 0.2, 1)
|
shader_parameter/variance_color = Color(0.3, 0.5, 0.2, 1)
|
||||||
shader_parameter/variance_intensity = 0.350000016625
|
shader_parameter/variance_intensity = 0.350000016625
|
||||||
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
||||||
shader_parameter/snow_visibility = 1.0
|
shader_parameter/snow_visibility = 1.6
|
||||||
shader_parameter/snow_coverage = 0.35
|
shader_parameter/snow_coverage = 0.65
|
||||||
shader_parameter/height_min = 0.0
|
shader_parameter/height_min = 0.0
|
||||||
shader_parameter/height_max = 5.0
|
shader_parameter/height_max = 5.0
|
||||||
shader_parameter/shadow_intensity = 0.6000000285
|
shader_parameter/shadow_intensity = 0.6000000285
|
||||||
|
|||||||
Reference in New Issue
Block a user