add snow coverage to tea material

This commit is contained in:
2026-06-07 18:01:47 +02:00
parent b602e3b521
commit 5c807d7b69
11 changed files with 52 additions and 39 deletions

View File

@@ -135,7 +135,7 @@ func _apply_dynamic_environment_materials(node: Node) -> void:
if node.is_in_group("weather_node"):
_apply_weather_overlay_to_node(node, WEATHER_SHADER)
if node.is_in_group("weather_vegetables_node"):
if _should_clear_weather_overlay(node):
_clear_weather_overlay_from_node(node)
func ApplyWindNoiseToMaterials():
@@ -162,10 +162,11 @@ func ApplyWeatherShaderToMaterials():
_apply_weather_overlay_to_node(node, WEATHER_SHADER)
for node in get_tree().get_nodes_in_group("weather_vegetables_node"):
_clear_weather_overlay_from_node(node)
if _should_clear_weather_overlay(node):
_clear_weather_overlay_from_node(node)
func _apply_weather_overlay_to_node(node: Node, material: Material) -> void:
if node.is_in_group("weather_vegetables_node"):
if _should_clear_weather_overlay(node):
_clear_weather_overlay_from_node(node)
return
@@ -210,6 +211,9 @@ func _shader_material_uses_alpha_texture(material: ShaderMaterial) -> bool:
return material.shader.code.find("alpha_texture") != -1
func _should_clear_weather_overlay(node: Node) -> bool:
return node.is_in_group("weather_vegetables_node")
func select_day_time(normalized_time: float) -> void:
#set show_day_time_debug = true to show debug on screen
#normalized_time is a value between 0 and 1; the time of the day is calculate as "normalized_time" * 1440; day_time is the step to pass from sunrise, to day, to sunset, to night

View File

@@ -33,7 +33,8 @@ uniform vec4 variance_color : source_color = vec4(0.3, 0.5, 0.2, 1.0); // Colore
uniform float variance_intensity : hint_range(0.0, 1.0) = 0.4; // Quanto si vedono le chiazze
uniform vec4 snow_color : source_color = vec4(0.85, 0.9, 0.95, 1.0);
uniform float snow_visibility : hint_range(0.0, 1.0) = 1.0;
uniform float snow_visibility : hint_range(0.0, 3.0) = 1.0;
uniform float snow_coverage : hint_range(0.05, 1.0) = 0.35;
// --- CONTROLLO GRADIENTE E RANDOM ---
uniform float height_min = 0.0;
@@ -135,8 +136,10 @@ void fragment() {
float snow_amount = smoothstep(0.0, 1.0, get_snow_progress());
float top_mask = 1.0 - shifted_uv.y;
float snow_mask = smoothstep(0.65, 1.0, top_mask) * snow_amount * snow_visibility;
float snow_start = 1.0 - clamp(snow_coverage, 0.05, 1.0);
float snow_mask = smoothstep(snow_start, 1.0, top_mask) * snow_amount * snow_visibility;
snow_mask *= step(0.01, snow_amount);
snow_mask = clamp(snow_mask, 0.0, 1.0);
vec3 dark_snow = snow_color.rgb * (1.0 - shadow_intensity);
vec3 shaded_snow = mix(dark_snow, snow_color.rgb, v_shade_factor);

View File

@@ -32,10 +32,11 @@ shader_parameter/variance_scale = 0.3
shader_parameter/variance_color = Color(0.3019608, 0.5019608, 0.2, 1)
shader_parameter/variance_intensity = 0.400000019
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
shader_parameter/snow_visibility = 1.0
shader_parameter/snow_visibility = 2.0
shader_parameter/snow_coverage = 0.85
shader_parameter/height_min = 0.0
shader_parameter/height_max = 30.0
shader_parameter/shadow_intensity = 1.0
shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.6000000285
shader_parameter/highlight_intensity = 0.0
shader_parameter/light_steps = 8.50000035625
shader_parameter/random_mix = 0.0150000007125
@@ -85,7 +86,7 @@ surface_material_override/0 = ExtResource("3_h7374")
[node name="grass_001" parent="." index="3" unique_id=1653206836]
surface_material_override/0 = ExtResource("4_aco6i")
[node name="Tea2" type="Node3D" parent="." index="4" unique_id=515491080 groups=["weather_vegetables_node"]]
[node name="Tea2" type="Node3D" parent="." index="4" unique_id=515491080 groups=["weather_node"]]
[node name="tea_plane" type="MeshInstance3D" parent="Tea2" index="0" unique_id=1884512502]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)

View File

@@ -164,14 +164,14 @@ material_override = ExtResource("8_klscp")
cast_shadow = 0
multimesh = SubResource("MultiMesh_2xngq")
[node name="Tea2" type="Node3D" parent="." index="9" unique_id=153529085 groups=["weather_vegetables_node"]]
[node name="Tea2" type="Node3D" parent="." index="9" unique_id=153529085 groups=["weather_node"]]
[node name="tea_plane" type="MeshInstance3D" parent="Tea2" index="0" unique_id=1170491878]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
visible = false
mesh = SubResource("PlaneMesh_ny8qj")
[node name="bush" type="MultiMeshInstance3D" parent="Tea2" index="1" unique_id=763333607 groups=["weather_vegetables_node"]]
[node name="bush" type="MultiMeshInstance3D" parent="Tea2" index="1" unique_id=763333607 groups=["weather_node"]]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.36843967, 0)
material_override = ExtResource("14_820gh")
cast_shadow = 0

View File

@@ -207,13 +207,13 @@ scala_correzione_xz = 4.955
scala_correzione_y = 5.945
altezza_massima = 2.0
[node name="tea_big" parent="." index="12" unique_id=1080521676 groups=["weather_vegetables_node"] instance=ExtResource("19_5lxs6")]
[node name="tea_big" parent="." index="12" unique_id=1080521676 groups=["weather_node"] instance=ExtResource("19_5lxs6")]
transform = Transform3D(-4.371139e-08, 0, -0.8607846, 0, 1, 0, 1, 0, -3.762609e-08, 6.137363, 0, 0.21655339)
[node name="tea_medium" parent="." index="13" unique_id=774250378 groups=["weather_vegetables_node"] instance=ExtResource("20_v5b08")]
[node name="tea_medium" parent="." index="13" unique_id=774250378 groups=["weather_node"] instance=ExtResource("20_v5b08")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.8468988, -4.717209, 0, -5.866095)
[node name="tea_small" parent="." index="14" unique_id=738556947 groups=["weather_vegetables_node"] instance=ExtResource("21_1bp38")]
[node name="tea_small" parent="." index="14" unique_id=738556947 groups=["weather_node"] instance=ExtResource("21_1bp38")]
transform = Transform3D(-3.4182502e-08, 0, -1, 0, 1, 0, 0.7820045, 0, -4.371139e-08, 1.4791412, 0, -5.8110795)
[node name="Node3D" type="Node3D" parent="." index="15" unique_id=1498631029]

View File

@@ -206,8 +206,8 @@ scala_correzione_xz = 4.955
scala_correzione_y = 5.945
altezza_massima = 2.0
[node name="tea_small" parent="." index="12" unique_id=738556947 groups=["weather_vegetables_node"] instance=ExtResource("13_oha7e")]
[node name="tea_small" parent="." index="12" unique_id=738556947 groups=["weather_node"] instance=ExtResource("13_oha7e")]
transform = Transform3D(-2.958303e-08, 0, -1, 0, 1, 0, 0.6767808, 0, -4.371139e-08, -6.1359725, 0, 5.9230976)
[node name="tea_small2" parent="." index="13" unique_id=1500366807 groups=["weather_vegetables_node"] instance=ExtResource("13_oha7e")]
[node name="tea_small2" parent="." index="13" unique_id=1500366807 groups=["weather_node"] instance=ExtResource("13_oha7e")]
transform = Transform3D(-2.958303e-08, 0, -1, 0, 1, 0, 0.6767808, 0, -4.371139e-08, 5.933122, 0, -5.890115)

View File

@@ -20,10 +20,11 @@ shader_parameter/variance_scale = 0.3
shader_parameter/variance_color = Color(0.3019608, 0.5019608, 0.2, 1)
shader_parameter/variance_intensity = 0.400000019
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
shader_parameter/snow_visibility = 1.0
shader_parameter/snow_visibility = 2.1670001029325
shader_parameter/snow_coverage = 0.5660000252550601
shader_parameter/height_min = 0.0
shader_parameter/height_max = 30.0
shader_parameter/shadow_intensity = 1.0
shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.6000000285
shader_parameter/highlight_intensity = 0.0
shader_parameter/light_steps = 8.50000035625
shader_parameter/random_mix = 0.0150000007125

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long