add rain to materials

This commit is contained in:
2026-03-31 19:33:17 +02:00
parent 222c3c88d3
commit b05abd395f
16 changed files with 218 additions and 106 deletions

View File

@@ -1,11 +1,11 @@
[gd_scene format=3 uid="uid://cahsl77384kf1"]
[ext_resource type="PackedScene" uid="uid://dllpmxm6ttwg" path="res://docs/museums/daynight/scenes/chunk_c_f_1/house_Muraglione.fbx" id="1_m4ocs"]
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/chunk_c_f_1/house.tres" id="2_7l0dg"]
[ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://docs/museums/daynight/scenes/chunk_c_f_1/house.tres" id="2_7l0dg"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bdf8l"]
[node name="House_Muraglione" unique_id=1060427946 groups=["snow_materials"] instance=ExtResource("1_m4ocs")]
[node name="House_Muraglione" unique_id=1060427946 groups=["weather_materials", "wind_materials"] instance=ExtResource("1_m4ocs")]
[node name="House_Muraglione" parent="." index="0" unique_id=517623360]
material_overlay = SubResource("ShaderMaterial_bdf8l")

File diff suppressed because one or more lines are too long

View File

@@ -5,6 +5,11 @@ global uniform float global_wind_speed;
global uniform vec2 global_wind_direction;
global uniform float global_wind_scale;
global uniform float global_wind_strength;
global uniform float global_snow_start_time;
global uniform float global_snow_accumulation_speed;
global uniform float global_snow_melt_time;
global uniform float global_snow_melt_speed;
global uniform vec4 global_snow_color;
uniform sampler2D wind_noise : filter_linear_mipmap;
uniform bool billboard_enabled = true;
@@ -24,6 +29,7 @@ uniform float random_mix : hint_range(0.0, 1.0) = 0.3;
uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6;
varying vec3 v_final_color;
varying float v_shade_factor;
float hash(vec3 p) {
p = fract(p * 0.1031);
@@ -48,6 +54,8 @@ void vertex() {
float combined_factor = mix(h_factor, leaf_rand, random_mix);
combined_factor = ceil(combined_factor * light_steps) / light_steps;
v_shade_factor = combined_factor;
vec3 dark_color = base_color.rgb * (1.0 - shadow_intensity);
vec3 light_color = base_color.rgb + (vec3(1.0) - base_color.rgb) * highlight_intensity;
v_final_color = mix(dark_color, light_color, combined_factor);
@@ -76,7 +84,25 @@ void fragment() {
vec2 shifted_uv = UV + texture_offset;
vec4 tex = texture(alpha_texture, shifted_uv);
ALBEDO = v_final_color;
// Snow accumulation
float snow_amount = 0.0;
if (global_snow_start_time >= 0.0) {
snow_amount = clamp((TIME - global_snow_start_time) * global_snow_accumulation_speed, 0.0, 1.0);
}
if (global_snow_melt_time >= 0.0) {
float melt = clamp((TIME - global_snow_melt_time) * global_snow_melt_speed, 0.0, 1.0);
snow_amount *= (1.0 - melt);
}
float top_mask = 1.0 - shifted_uv.y;
float snow_mask = smoothstep(1.0 - snow_amount, 1.2 - snow_amount, top_mask);
snow_mask *= step(0.01, snow_amount);
vec3 dark_snow = global_snow_color.rgb * (1.0 - shadow_intensity);
vec3 shaded_snow = mix(dark_snow, global_snow_color.rgb, v_shade_factor);
vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
ALBEDO = final_albedo;
ALPHA = tex.r * opacity;
ALPHA_SCISSOR_THRESHOLD = 0.5;
ROUGHNESS = 0.02;

View File

@@ -1,9 +1,9 @@
[gd_scene format=3 uid="uid://jj15telqu3rp"]
[ext_resource type="PackedScene" uid="uid://e1an0215p6k2" path="res://docs/museums/daynight/scenes/grain_test/tree_v1.fbx" id="1_1rhib"]
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/grass_test/grass.tres" id="2_4v7oi"]
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/grass_test/grass3.tres" id="3_aek5d"]
[ext_resource type="Material" path="res://docs/museums/daynight/scenes/grass_test/grass4.tres" id="4_bawi4"]
[ext_resource type="Material" uid="uid://cudoptcrtgl7u" path="res://docs/museums/daynight/scenes/grass_test/grass.tres" id="2_4v7oi"]
[ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://docs/museums/daynight/scenes/grass_test/grass3.tres" id="3_aek5d"]
[ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://docs/museums/daynight/scenes/grass_test/grass4.tres" id="4_bawi4"]
[sub_resource type="QuadMesh" id="QuadMesh_rpt6v"]
@@ -27,7 +27,7 @@ instance_count = 40
mesh = SubResource("QuadMesh_rpt6v")
buffer = PackedFloat32Array(-1.001, 0, 0, -2.8797488, 0, 1.001, -5.966425e-08, -0.7477443, 0, -5.966425e-08, -1.001, -4.2194977, -1.001, 0, 0, -1.7037079, 0, 1.001, -5.966425e-08, -0.7477442, 0, -5.966425e-08, -1.001, -3.2446604, -1.001, 0, 0, 1.2830465, 0, 1.001, -5.966425e-08, -0.7477443, 0, -5.966425e-08, -1.001, -4.557446, -1.001, 0, 0, -5.028355, 0, 1.001, -5.966425e-08, -0.74774426, 0, -5.966425e-08, -1.001, -3.6429324, -1.001, 0, 0, -6.371053, 0, 1.001, -5.966425e-08, -0.7477439, 0, -5.966425e-08, -1.001, 4.1175256, 0, 0, -1.001, -1.5100684, 4.5406587e-08, 1.001, 0, -0.7477439, 1.001, -4.5406587e-08, 0, 4.42225, -1.001, 0, 0, -5.2487645, 0, 1.001, -5.966425e-08, -0.7477441, 0, -5.966425e-08, -1.001, -0.013931215, 0, 0, -1.001, 6.235317, 4.5406587e-08, 1.001, 0, -0.74774384, 1.001, -4.5406587e-08, 0, 6.248699, 0, 0, -1.001, 1.3825206, 4.5406587e-08, 1.001, 0, -0.7477441, 1.001, -4.5406587e-08, 0, 1.1873395, 0, 0, -1.001, 2.780786, 4.5406587e-08, 1.001, 0, -0.747744, 1.001, -4.5406587e-08, 0, 1.1765423, -1.001, 0, 0, 1.0532601, 0, 1.001, -5.966425e-08, -0.74774444, 0, -5.966425e-08, -1.001, -6.5395527, -1.001, 0, 0, -4.3666453, 0, 1.001, -5.966425e-08, -0.747744, 0, -5.966425e-08, -1.001, 1.6017916, -1.001, 0, 0, -1.3377903, 0, 1.001, -5.966425e-08, -0.7477441, 0, -5.966425e-08, -1.001, -0.6376221, 0, 0, -1.001, 5.4567842, 4.5406587e-08, 1.001, 0, -0.7477441, 1.001, -4.5406587e-08, 0, 0.5279622, 0, 0, -1.001, -1.2204466, 4.5406587e-08, 1.001, 0, -0.74774396, 1.001, -4.5406587e-08, 0, 1.4669147, -1.001, 0, 0, -5.0291324, 0, 1.001, -5.966425e-08, -0.74774426, 0, -5.966425e-08, -1.001, -3.9644425, 0, 0, -1.001, 4.144575, 4.5406587e-08, 1.001, 0, -0.7477443, 1.001, -4.5406587e-08, 0, -3.9907537, -1.001, 0, 0, -0.18894172, 0, 1.001, -5.966425e-08, -0.7477443, 0, -5.966425e-08, -1.001, -5.562557, 0, 0, -1.001, 3.410009, 4.5406587e-08, 1.001, 0, -0.74774396, 1.001, -4.5406587e-08, 0, 1.8935597, 0, 0, -1.001, -2.7810845, 4.5406587e-08, 1.001, 0, -0.7477439, 1.001, -4.5406587e-08, 0, 3.808044, -1.001, 0, 0, 0.284374, 0, 1.001, -5.966425e-08, -0.7477441, 0, -5.966425e-08, -1.001, -0.58144546, -1.001, 0, 0, -3.1262631, 0, 1.001, -5.966425e-08, -0.7477442, 0, -5.966425e-08, -1.001, -2.8066845, 0, 0, -1.001, 5.7749968, 4.5406587e-08, 1.001, 0, -0.7477441, 1.001, -4.5406587e-08, 0, 0.935482, -1.001, 0, 0, -5.218869, 0, 1.001, -5.966425e-08, -0.74774426, 0, -5.966425e-08, -1.001, -4.2917852, 0, 0, -1.001, 6.1626782, 4.5406587e-08, 1.001, 0, -0.7477441, 1.001, -4.5406587e-08, 0, 0.21193457, -1.001, 0, 0, 3.9669042, 0, 1.001, -5.966425e-08, -0.7477443, 0, -5.966425e-08, -1.001, -5.853158, 0, 0, -1.001, 2.2436643, 4.5406587e-08, 1.001, 0, -0.74774396, 1.001, -4.5406587e-08, 0, 3.1271167, 0, 0, -1.001, 2.4900956, 4.5406587e-08, 1.001, 0, -0.7477439, 1.001, -4.5406587e-08, 0, 3.9106765, 0, 0, -1.001, 5.5539966, 4.5406587e-08, 1.001, 0, -0.74774384, 1.001, -4.5406587e-08, 0, 6.162884, 0, 0, -1.001, -1.6500849, 4.5406587e-08, 1.001, 0, -0.74774384, 1.001, -4.5406587e-08, 0, 5.425037, 0, 0, -1.001, 1.2913516, 4.5406587e-08, 1.001, 0, -0.7477438, 1.001, -4.5406587e-08, 0, 5.9583297, 0, 0, -1.001, 3.403863, 4.5406587e-08, 1.001, 0, -0.7477441, 1.001, -4.5406587e-08, 0, -1.3604579, 0, 0, -1.001, 2.5133843, 4.5406587e-08, 1.001, 0, -0.7477441, 1.001, -4.5406587e-08, 0, -1.2172651, 0, 0, -1.001, -1.865159, 4.5406587e-08, 1.001, 0, -0.74774396, 1.001, -4.5406587e-08, 0, 2.02114, -1.001, 0, 0, -2.1462004, 0, 1.001, -5.966425e-08, -0.747744, 0, -5.966425e-08, -1.001, 1.2531993, 0, 0, -1.001, 6.005666, 4.5406587e-08, 1.001, 0, -0.747744, 1.001, -4.5406587e-08, 0, 1.2401769, 0, 0, -1.001, 2.402935, 4.5406587e-08, 1.001, 0, -0.7477439, 1.001, -4.5406587e-08, 0, 2.778954, -1.001, 0, 0, -6.482737, 0, 1.001, -5.966425e-08, -0.74774384, 0, -5.966425e-08, -1.001, 5.1091228, -1.001, 0, 0, 0.6619804, 0, 1.001, -5.966425e-08, -0.74774414, 0, -5.966425e-08, -1.001, -1.2692692, -1.001, 0, 0, 3.7678468, 0, 1.001, -5.966425e-08, -0.74774426, 0, -5.966425e-08, -1.001, -4.5863547)
[node name="Grass" unique_id=838519336 groups=["snow_materials", "wind_materials"] instance=ExtResource("1_1rhib")]
[node name="Grass" unique_id=838519336 groups=["weather_materials", "wind_materials"] instance=ExtResource("1_1rhib")]
[node name="Leaf" parent="." index="0" unique_id=770569390]
visible = false