diff --git a/core/daynight/grass_leaves.gdshader b/core/daynight/grass_leaves.gdshader index c29360f..4733d32 100644 --- a/core/daynight/grass_leaves.gdshader +++ b/core/daynight/grass_leaves.gdshader @@ -141,13 +141,15 @@ void fragment() { 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); + float full_snow_mask = smoothstep(0.72, 1.0, snow_amount) * step(0.01, snow_visibility); + float final_snow_mask = max(snow_mask, full_snow_mask); vec3 snow_base_color = max(snow_color.rgb, global_snow_color.rgb); 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 - vec3 final_albedo = mix(varied_grass_color, shaded_snow, snow_mask); + vec3 final_albedo = mix(varied_grass_color, shaded_snow, final_snow_mask); float rain_int = clamp(global_rain_intensity, 0.0, 1.0); final_albedo *= mix(1.0, 1.0 - wetness_darkening, rain_int); float final_roughness = mix(0.02, 0.005, rain_int); diff --git a/core/daynight/tree_leaves.gdshader b/core/daynight/tree_leaves.gdshader index 11f777e..6fc87b0 100644 --- a/core/daynight/tree_leaves.gdshader +++ b/core/daynight/tree_leaves.gdshader @@ -110,10 +110,12 @@ void fragment() { float top_mask = 1.0 - shifted_uv.y; 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); + float full_snow_mask = smoothstep(0.78, 1.0, snow_amount) * clamp(snow_visibility, 0.0, 1.0); + float final_snow_mask = max(snow_mask, full_snow_mask); float snow_light = mix(0.82, 1.0, max(v_shade_factor, 0.35)); 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, final_snow_mask); // Rain wetness: darken and make shinier float rain_int = clamp(global_rain_intensity, 0.0, 1.0); diff --git a/tgcc/main menu/main_menu_test.tscn b/tgcc/main menu/main_menu_test.tscn index 00cdc62..f9be0af 100644 --- a/tgcc/main menu/main_menu_test.tscn +++ b/tgcc/main menu/main_menu_test.tscn @@ -368,14 +368,14 @@ transform = Transform3D(-0.09359112, 0, 0.9713834, 0, 0.56225973, 0, -0.38276488 [node name="Fuji4" parent="." unique_id=930179001 instance=ExtResource("99_61psf")] transform = Transform3D(-0.09359112, 0, 0.9713834, 0, 0.56225973, 0, -0.38276488, 0, -0.23751618, 239.46135, 1.7057877, 224.6928) -[node name="Landscape" parent="Fuji4" index="0" unique_id=1897614485] +[node name="Landscape" parent="Fuji4" index="0" unique_id=581950846] transform = Transform3D(28.638817, 1.7053026e-13, -7.6293945e-06, 0, 13.6219845, 2.1621709e-06, 0, -1.0284306e-06, 28.638834, -10.786804, 5.0069, 17.382736) surface_material_override/0 = SubResource("ShaderMaterial_g1vc5") [node name="Fuji5" parent="." unique_id=1070037082 instance=ExtResource("99_61psf")] transform = Transform3D(0.0935979, 0, 0.9713791, 0, 0.56225973, 0, -0.38276324, 0, 0.23753339, -275.95566, -3.4616928, 232.02234) -[node name="Landscape" parent="Fuji5" index="0" unique_id=1897614485] +[node name="Landscape" parent="Fuji5" index="0" unique_id=581950846] transform = Transform3D(28.638819, 1.7053026e-13, -7.6293945e-06, 0, 13.6219845, 2.1621709e-06, 0, -1.0284306e-06, 28.638836, -10.786743, 6.703195, 17.382767) surface_material_override/0 = SubResource("ShaderMaterial_g1vc5") @@ -385,7 +385,7 @@ transform = Transform3D(-4.88843, -0.020050459, 0.86837775, -0.010355438, 4.9646 [node name="Fuji6" parent="." unique_id=150126281 instance=ExtResource("100_0aqpp")] transform = Transform3D(-5.287449, -0.020231497, 0.22351237, -0.011200703, 5.009496, 0.014500697, -0.9394429, 0.05414178, -1.2581636, 32.446022, 15.848213, 525.54346) -[node name="Mt Fuji_simplified_3d_mesh" parent="Fuji6" index="0" unique_id=206531083] +[node name="Mt Fuji_simplified_3d_mesh" parent="Fuji6" index="0" unique_id=65404928] transform = Transform3D(0.5151193, -0.011206273, -0.07264297, 0.077138014, 0.07483422, 0.48510167, 3.5762787e-07, -0.4938935, 0.07515043, 6.299696, 12.244916, 3.004303) surface_material_override/0 = SubResource("ShaderMaterial_vvb5q")