diff --git a/Materials/Rain.tres b/Materials/Rain.tres index 09b95f5..e5a00c8 100644 --- a/Materials/Rain.tres +++ b/Materials/Rain.tres @@ -6,7 +6,7 @@ alpha_scissor_threshold = 0.0 alpha_antialiasing_mode = 0 shading_mode = 0 disable_ambient_light = true -albedo_color = Color(0.6745098, 0.91764706, 0.9372549, 1) +albedo_color = Color(0.4745098, 0.69411767, 0.7607843, 0.7411765) billboard_mode = 3 particles_anim_h_frames = 1 particles_anim_v_frames = 1 diff --git a/Materials/Snow.tres b/Materials/Snow.tres new file mode 100644 index 0000000..26d6cc7 --- /dev/null +++ b/Materials/Snow.tres @@ -0,0 +1,21 @@ +[gd_resource type="ParticleProcessMaterial" format=3 uid="uid://c0hckftuuyag0"] + +[sub_resource type="Gradient" id="Gradient_l1dl0"] +offsets = PackedFloat32Array(0, 0.4854651, 1) +colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_kjb07"] +gradient = SubResource("Gradient_l1dl0") + +[resource] +particle_flag_align_y = true +emission_shape_scale = Vector3(50, 10, 50) +emission_shape = 3 +emission_box_extents = Vector3(1, 1, 1) +direction = Vector3(0, -1, 0) +spread = 0.0 +initial_velocity_min = 2.5 +initial_velocity_max = 5.0 +gravity = Vector3(0, -2, 0) +scale_max = 10.0 +color_ramp = SubResource("GradientTexture1D_kjb07") diff --git a/Materials/grass.tres b/Materials/grass.tres index 78f6d96..ee0fc97 100644 --- a/Materials/grass.tres +++ b/Materials/grass.tres @@ -1,15 +1,20 @@ [gd_resource type="ShaderMaterial" format=3 uid="uid://cudoptcrtgl7u"] -[ext_resource type="Shader" uid="uid://e3teyipsokeg" path="res://Shaders/Grass_Test.gdshader" id="1_528a5"] +[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="1_528a5"] [ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="2_4d6mx"] [resource] render_priority = 0 shader = ExtResource("1_528a5") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("2_4d6mx") shader_parameter/leaves_scale = 1.0 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 diff --git a/Materials/leaves2_mat.tres b/Materials/leaves2_mat.tres index 4edd247..b158e13 100644 --- a/Materials/leaves2_mat.tres +++ b/Materials/leaves2_mat.tres @@ -8,12 +8,13 @@ render_priority = 0 shader = ExtResource("1_2uy3m") shader_parameter/billboard_enabled = true shader_parameter/wind_enabled = true -shader_parameter/base_color = Color(0.8963595, 0.48646247, 0.64866394, 1) +shader_parameter/base_color = Color(0.9549616, 0.54784274, 0.71385026, 1) shader_parameter/alpha_texture = ExtResource("2_2uy3m") shader_parameter/leaves_scale = 1.375 shader_parameter/rotation_degrees = 180.0 shader_parameter/texture_offset = Vector2(0, 0) shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 6.0 shader_parameter/height_max = 9.26 shader_parameter/shadow_intensity = 0.8270000392825 diff --git a/Scenes/Chunk_Rotaie/chunk_curva_1.tscn b/Scenes/Chunk_Rotaie/chunk_curva_1.tscn index c2d71c3..08f6f88 100644 --- a/Scenes/Chunk_Rotaie/chunk_curva_1.tscn +++ b/Scenes/Chunk_Rotaie/chunk_curva_1.tscn @@ -2,16 +2,23 @@ [ext_resource type="PackedScene" uid="uid://0uakvynj7hyp" path="res://Assets/Meshes/Chunk/Rotaie/Chunk_Curva_1.fbx" id="1_rsn8b"] [ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="2_024mu"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_nw560"] [ext_resource type="Material" uid="uid://d1xcve6aswe3d" path="res://Materials/TrainChunk.tres" id="3_one63"] [ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="4_one63"] [ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="5_nw560"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_stvfq"] +render_priority = 0 +shader = ExtResource("2_nw560") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="BoxShape3D" id="BoxShape3D_024mu"] size = Vector3(20, 10, 20) [node name="Chunk_Curva_1" unique_id=1316208881 instance=ExtResource("1_rsn8b")] [node name="Chunk_052" parent="." index="0" unique_id=2099348783] +material_overlay = SubResource("ShaderMaterial_stvfq") surface_material_override/0 = ExtResource("2_024mu") surface_material_override/1 = ExtResource("3_one63") diff --git a/Scenes/Chunk_Rotaie/chunk_rettilineo_1.tscn b/Scenes/Chunk_Rotaie/chunk_rettilineo_1.tscn index 682f3cc..987f01b 100644 --- a/Scenes/Chunk_Rotaie/chunk_rettilineo_1.tscn +++ b/Scenes/Chunk_Rotaie/chunk_rettilineo_1.tscn @@ -1,17 +1,24 @@ [gd_scene format=3 uid="uid://djceu7hj8lpha"] [ext_resource type="PackedScene" uid="uid://cm1x7327vhq8o" path="res://Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_1.fbx" id="1_h6p6r"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_x2uag"] [ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="3_x2uag"] [ext_resource type="Material" uid="uid://d1xcve6aswe3d" path="res://Materials/TrainChunk.tres" id="4_0tij7"] [ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="4_dqurx"] [ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="5_x2uag"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_0tij7"] +render_priority = 0 +shader = ExtResource("2_x2uag") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="BoxShape3D" id="BoxShape3D_h6p6r"] size = Vector3(20, 10, 20) [node name="Chunk_Rettilineo_1" unique_id=916054224 instance=ExtResource("1_h6p6r")] [node name="Chunk" parent="." index="0" unique_id=1906873929] +material_overlay = SubResource("ShaderMaterial_0tij7") surface_material_override/0 = ExtResource("3_x2uag") surface_material_override/1 = ExtResource("4_0tij7") diff --git a/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn b/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn index 244c92f..ce4237b 100644 --- a/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn +++ b/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn @@ -1,16 +1,21 @@ [gd_scene format=3 uid="uid://sybnjir2d05"] [ext_resource type="PackedScene" uid="uid://c75bi7f6infu6" path="res://Assets/Meshes/Chunk/Prop/Test_BordiSentiero.fbx" id="1_gkuoy"] -[ext_resource type="Shader" uid="uid://e3teyipsokeg" path="res://Shaders/Grass_Test.gdshader" id="2_hi0id"] +[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="2_1g7yt"] [ext_resource type="Texture2D" uid="uid://b7sqjhecpoyoh" path="res://Assets/Textures/Leaf_Test.png" id="3_d2h5c"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ta3rv"] render_priority = 0 -shader = ExtResource("2_hi0id") +shader = ExtResource("2_1g7yt") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.28235295, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("3_d2h5c") shader_parameter/leaves_scale = 0.5 shader_parameter/rotation_degrees = 0.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.730000034675 @@ -30,11 +35,16 @@ buffer = PackedFloat32Array(-0.6408246, -8.276528e-09, 0.7689895, 0.18645085, -1 [sub_resource type="ShaderMaterial" id="ShaderMaterial_gkuoy"] render_priority = 0 -shader = ExtResource("2_hi0id") +shader = ExtResource("2_1g7yt") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.3882353, 0.52156866, 0.20784314, 1) shader_parameter/alpha_texture = ExtResource("3_d2h5c") shader_parameter/leaves_scale = 0.5 shader_parameter/rotation_degrees = 0.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.730000034675 @@ -51,17 +61,17 @@ buffer = PackedFloat32Array(-0.1060635, 1.5748384e-09, 0.99536514, -0.8481213, - [node name="Test_BordiSentiero" unique_id=1395614268 instance=ExtResource("1_gkuoy")] -[node name="Cube_016" parent="." index="0" unique_id=2097058885] +[node name="Cube_016" parent="." index="0" unique_id=825065805] visible = false cast_shadow = 0 -[node name="Cube_017" parent="." index="1" unique_id=191613435] +[node name="Cube_017" parent="." index="1" unique_id=1633646904] visible = false -[node name="Cube_019" parent="." index="2" unique_id=919907353] +[node name="Cube_019" parent="." index="2" unique_id=2064303696] visible = false -[node name="Cube_020" parent="." index="3" unique_id=1585266842] +[node name="Cube_020" parent="." index="3" unique_id=2115761534] visible = false [node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="." index="4" unique_id=1748438133] diff --git a/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloInterno.tscn b/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloInterno.tscn index eb2e670..5da9b77 100644 --- a/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloInterno.tscn +++ b/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloInterno.tscn @@ -1,16 +1,21 @@ [gd_scene format=3 uid="uid://623itnb41wew"] [ext_resource type="PackedScene" uid="uid://c75bi7f6infu6" path="res://Assets/Meshes/Chunk/Prop/Test_BordiSentiero.fbx" id="1_0mp8t"] -[ext_resource type="Shader" uid="uid://e3teyipsokeg" path="res://Shaders/Grass_Test.gdshader" id="2_i8eq2"] +[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="2_cejtq"] [ext_resource type="Texture2D" uid="uid://b7sqjhecpoyoh" path="res://Assets/Textures/Leaf_Test.png" id="3_i8eq2"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ta3rv"] render_priority = 0 -shader = ExtResource("2_i8eq2") +shader = ExtResource("2_cejtq") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.28235295, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("3_i8eq2") shader_parameter/leaves_scale = 0.5 shader_parameter/rotation_degrees = 0.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.730000034675 @@ -30,11 +35,16 @@ buffer = PackedFloat32Array(1.2331435e-08, -0.28211024, 0.44848275, 0.8891074, - [sub_resource type="ShaderMaterial" id="ShaderMaterial_i8eq2"] render_priority = 0 -shader = ExtResource("2_i8eq2") +shader = ExtResource("2_cejtq") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.3882353, 0.52156866, 0.20784314, 1) shader_parameter/alpha_texture = ExtResource("3_i8eq2") shader_parameter/leaves_scale = 0.5 shader_parameter/rotation_degrees = 0.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.730000034675 @@ -51,17 +61,17 @@ buffer = PackedFloat32Array(0.6347137, -8.595991e-09, -0.7740411, 0.7678654, 1.0 [node name="Test_BordiSentiero" unique_id=1395614268 instance=ExtResource("1_0mp8t")] -[node name="Cube_016" parent="." index="0" unique_id=2097058885] +[node name="Cube_016" parent="." index="0" unique_id=825065805] visible = false cast_shadow = 0 -[node name="Cube_017" parent="." index="1" unique_id=191613435] +[node name="Cube_017" parent="." index="1" unique_id=1633646904] visible = false -[node name="Cube_019" parent="." index="2" unique_id=919907353] +[node name="Cube_019" parent="." index="2" unique_id=2064303696] visible = false -[node name="Cube_020" parent="." index="3" unique_id=1585266842] +[node name="Cube_020" parent="." index="3" unique_id=2115761534] visible = false [node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="." index="4" unique_id=1748438133] diff --git a/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn b/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn index f2cb4f6..54fcd5e 100644 --- a/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn +++ b/Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn @@ -1,16 +1,21 @@ [gd_scene format=3 uid="uid://bfvtlpkcnbgke"] [ext_resource type="PackedScene" uid="uid://c75bi7f6infu6" path="res://Assets/Meshes/Chunk/Prop/Test_BordiSentiero.fbx" id="1_dvg25"] -[ext_resource type="Shader" uid="uid://e3teyipsokeg" path="res://Shaders/Grass_Test.gdshader" id="2_oq3do"] +[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="2_try56"] [ext_resource type="Texture2D" uid="uid://b7sqjhecpoyoh" path="res://Assets/Textures/Leaf_Test.png" id="3_2lnj1"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ta3rv"] render_priority = 0 -shader = ExtResource("2_oq3do") +shader = ExtResource("2_try56") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.28235295, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("3_2lnj1") shader_parameter/leaves_scale = 0.5 shader_parameter/rotation_degrees = 0.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.730000034675 @@ -30,11 +35,16 @@ buffer = PackedFloat32Array(0.087661915, 3.790419e-09, -0.99715424, 0.88056636, [sub_resource type="ShaderMaterial" id="ShaderMaterial_dvg25"] render_priority = 0 -shader = ExtResource("2_oq3do") +shader = ExtResource("2_try56") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.3882353, 0.52156866, 0.20784314, 1) shader_parameter/alpha_texture = ExtResource("3_2lnj1") shader_parameter/leaves_scale = 0.5 shader_parameter/rotation_degrees = 0.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.730000034675 @@ -51,17 +61,17 @@ buffer = PackedFloat32Array(-0.058212023, -7.000112e-09, 0.9993061, -3.6334105, [node name="Test_BordiSentiero" unique_id=1395614268 instance=ExtResource("1_dvg25")] -[node name="Cube_016" parent="." index="0" unique_id=2097058885] +[node name="Cube_016" parent="." index="0" unique_id=825065805] visible = false cast_shadow = 0 -[node name="Cube_017" parent="." index="1" unique_id=191613435] +[node name="Cube_017" parent="." index="1" unique_id=1633646904] visible = false -[node name="Cube_019" parent="." index="2" unique_id=919907353] +[node name="Cube_019" parent="." index="2" unique_id=2064303696] visible = false -[node name="Cube_020" parent="." index="3" unique_id=1585266842] +[node name="Cube_020" parent="." index="3" unique_id=2115761534] visible = false [node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="." index="4" unique_id=1748438133] diff --git a/Scenes/Chunk_Scene/Chunk/Campagna/Chunk_C_L_2.tscn b/Scenes/Chunk_Scene/Chunk/Campagna/Chunk_C_L_2.tscn index 731463f..05ceaca 100644 --- a/Scenes/Chunk_Scene/Chunk/Campagna/Chunk_C_L_2.tscn +++ b/Scenes/Chunk_Scene/Chunk/Campagna/Chunk_C_L_2.tscn @@ -6,18 +6,29 @@ [ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="3_eyx8o"] [ext_resource type="Texture2D" uid="uid://3ot7glyivagg" path="res://Assets/Textures/Texture_Sentiero.png" id="3_odndq"] [ext_resource type="Material" uid="uid://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="4_2qt04"] -[ext_resource type="Shader" uid="uid://e3teyipsokeg" path="res://Shaders/Grass_Test.gdshader" id="4_bp8uq"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="4_11318"] [ext_resource type="PackedScene" uid="uid://623itnb41wew" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloInterno.tscn" id="5_vxc6e"] [ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="5_xlq82"] [ext_resource type="PackedScene" uid="uid://sybnjir2d05" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn" id="6_8ms8u"] [ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="7_8ttth"] [ext_resource type="PackedScene" uid="uid://bhcut7ndtdo2w" path="res://Assets/Test/SK_Mannequin.FBX" id="8_mhtt3"] +[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="8_raxwl"] [ext_resource type="PackedScene" uid="uid://y2yhcshxa0n" path="res://Scenes/Chunk_Scene/Orto/test_orto_small.tscn" id="9_8fc4d"] [ext_resource type="PackedScene" uid="uid://igbtt2ypx0ks" path="res://Scenes/Chunk_Scene/Prop/Staccionate.tscn" id="9_aqvmj"] [ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://Materials/Staccionata.tres" id="10_is3ra"] [ext_resource type="PackedScene" uid="uid://co3scydwgpvgc" path="res://Scenes/Chunk_Scene/Orto/test_orto_big.tscn" id="11_is3ra"] [ext_resource type="PackedScene" uid="uid://dutvq3oy1ni7c" path="res://Scenes/Chunk_Scene/House/House_XL_1.tscn" id="16_15ugy"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_e6du4"] +render_priority = 0 +shader = ExtResource("4_11318") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_byjwq"] +render_priority = 0 +shader = ExtResource("4_11318") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ofhgo"] resource_name = "Material" vertex_color_use_as_albedo = true @@ -56,22 +67,47 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_h7yuw") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gd3hq"] +render_priority = 0 +shader = ExtResource("4_11318") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_15ugy"] albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1) albedo_texture = ExtResource("3_odndq") uv1_scale = Vector3(1.845, 2.325, 1) uv1_offset = Vector3(-0.335, 0, 0) +[sub_resource type="ShaderMaterial" id="ShaderMaterial_rhpq8"] +render_priority = 0 +shader = ExtResource("4_11318") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vxc6e"] albedo_color = Color(0.19607843, 0.6117647, 0.26666668, 1) +[sub_resource type="ShaderMaterial" id="ShaderMaterial_hq330"] +render_priority = 0 +shader = ExtResource("4_11318") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_l2fy1"] +render_priority = 0 +shader = ExtResource("4_11318") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="ShaderMaterial" id="ShaderMaterial_odndq"] render_priority = 0 -shader = ExtResource("4_bp8uq") +shader = ExtResource("8_raxwl") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("5_xlq82") shader_parameter/leaves_scale = 0.79 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -82,11 +118,16 @@ shader_parameter/cast_shadow_strength = 0.6 [sub_resource type="ShaderMaterial" id="ShaderMaterial_bp8uq"] render_priority = 0 -shader = ExtResource("4_bp8uq") +shader = ExtResource("8_raxwl") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("5_xlq82") shader_parameter/leaves_scale = 0.7 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -97,11 +138,16 @@ shader_parameter/cast_shadow_strength = 0.6 [sub_resource type="ShaderMaterial" id="ShaderMaterial_xlq82"] render_priority = 0 -shader = ExtResource("4_bp8uq") +shader = ExtResource("8_raxwl") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("5_xlq82") shader_parameter/leaves_scale = 0.7 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -152,11 +198,16 @@ shadow_mesh = SubResource("ArrayMesh_gwoio") [sub_resource type="ShaderMaterial" id="ShaderMaterial_gpw8b"] render_priority = 0 -shader = ExtResource("4_bp8uq") +shader = ExtResource("8_raxwl") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.43529412, 0.4627451, 0.08235294, 1) shader_parameter/alpha_texture = ExtResource("5_xlq82") shader_parameter/leaves_scale = 0.555 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -183,30 +234,36 @@ ovest = true [node name="Chunk_002" parent="." index="0" unique_id=1455965802] transform = Transform3D(8.198544e-06, -100, -4.371139e-06, 0, -4.371139e-06, 100, -108.593, -7.54979e-06, -3.3001182e-13, 0, 0.041, -0.84952193) material_override = ExtResource("2_xlq82") +material_overlay = SubResource("ShaderMaterial_e6du4") [node name="Chunk_005" type="MeshInstance3D" parent="." index="1" unique_id=345649136] transform = Transform3D(1.1920928e-05, -67.78416, -1.4901162e-05, -2.980232e-06, -8.080501e-06, 100, -99.99999, -4.0402506e-06, 0, 2.9563882, -0.023516655, -2.513685) material_override = ExtResource("2_xlq82") +material_overlay = SubResource("ShaderMaterial_byjwq") mesh = SubResource("ArrayMesh_s4u17") skeleton = NodePath("") [node name="Chunk_007" type="MeshInstance3D" parent="." index="2" unique_id=1021549662] transform = Transform3D(19.377419, 2.072737, 8.354379e-07, -5.7840185e-07, -4.407152e-06, 100, 1.0881187, -36.91172, -1.4877721e-05, 2.7383292, 0, 6.3970623) material_override = ExtResource("2_xlq82") +material_overlay = SubResource("ShaderMaterial_gd3hq") mesh = SubResource("ArrayMesh_s4u17") skeleton = NodePath("") [node name="Chunk_006" type="MeshInstance3D" parent="." index="3" unique_id=1766076384] transform = Transform3D(-70.80811, 6.212535e-06, 3.821371e-13, 0, -3.1062675e-06, 100.00001, 6.1902415e-06, 71.06311, 4.371139e-06, 2.4387622, -0.023403406, 0.024760723) material_override = SubResource("StandardMaterial3D_15ugy") +material_overlay = SubResource("ShaderMaterial_rhpq8") mesh = SubResource("ArrayMesh_s4u17") skeleton = NodePath("") [node name="Chunk_004" parent="." index="4" unique_id=2103650482] material_override = SubResource("StandardMaterial3D_vxc6e") +material_overlay = SubResource("ShaderMaterial_hq330") [node name="Chunk_038" parent="." index="5" unique_id=476922148] material_override = ExtResource("2_xlq82") +material_overlay = SubResource("ShaderMaterial_l2fy1") [node name="Cube_016" parent="." index="6" unique_id=117542775] visible = false diff --git a/Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_f_1.tscn b/Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_f_1.tscn index 4cefabf..4e97ee8 100644 --- a/Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_f_1.tscn +++ b/Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_f_1.tscn @@ -6,6 +6,7 @@ [ext_resource type="PackedScene" uid="uid://8jtrp8ckqf1a" path="res://Scenes/Chunk_Scene/House/House_muraglione.tscn" id="4_lunjj"] [ext_resource type="PackedScene" uid="uid://5sod22d0vnip" path="res://Scenes/Chunk_Scene/House/House_XL_4.tscn" id="5_tf2ul"] [ext_resource type="PackedScene" uid="uid://birttctl11th8" path="res://Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_l_1.tscn" id="6_4h5ax"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="7_wr3vc"] [ext_resource type="Material" uid="uid://couj6glsrm6h3" path="res://Materials/Sentiero.tres" id="7_y2p7p"] [ext_resource type="PackedScene" uid="uid://dyolu5m0lgqm2" path="res://Scenes/Test/ToriGate.tscn" id="9_ji5rd"] [ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="9_s470o"] @@ -13,6 +14,21 @@ [ext_resource type="PackedScene" uid="uid://4iye3qapad4y" path="res://Scenes/Test/Colonnina_Blockout.tscn" id="11_4n1py"] [ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="12_rrcoc"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_fim7w"] +render_priority = 0 +shader = ExtResource("7_wr3vc") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_jqd13"] +render_priority = 0 +shader = ExtResource("7_wr3vc") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_cvr4e"] +render_priority = 0 +shader = ExtResource("7_wr3vc") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0uwhb"] resource_name = "Material" vertex_color_use_as_albedo = true @@ -51,6 +67,16 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_v3qhc") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_1sygh"] +render_priority = 0 +shader = ExtResource("7_wr3vc") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_8kcs0"] +render_priority = 0 +shader = ExtResource("7_wr3vc") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="ArrayMesh" id="ArrayMesh_7ona5"] _surfaces = [{ "aabb": AABB(-0.015000002, -0.1, -0.00043503524, 0.030000005, 0.115, 0.0008700705), @@ -108,16 +134,25 @@ sud = false [node name="Chunk_005" parent="Chunk_C_L_1" index="0" unique_id=1667835125] visible = false +material_overlay = SubResource("ShaderMaterial_fim7w") + +[node name="Chunk_036" parent="Chunk_C_L_1" index="1" unique_id=248347357] +material_overlay = SubResource("ShaderMaterial_jqd13") [node name="Chunk_039" type="MeshInstance3D" parent="Chunk_C_L_1" index="2" unique_id=311921996] transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 11.507141, 0, 0) material_override = ExtResource("7_y2p7p") +material_overlay = SubResource("ShaderMaterial_cvr4e") mesh = SubResource("ArrayMesh_db63l") skeleton = NodePath("") +[node name="Chunk_037" parent="Chunk_C_L_1" index="3" unique_id=1414101746] +material_overlay = SubResource("ShaderMaterial_1sygh") + [node name="Chunk_038" type="MeshInstance3D" parent="Chunk_C_L_1" index="4" unique_id=300529289] transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 0, 0, -8.492352) material_override = ExtResource("7_y2p7p") +material_overlay = SubResource("ShaderMaterial_8kcs0") mesh = SubResource("ArrayMesh_vall4") skeleton = NodePath("") diff --git a/Scenes/Chunk_Scene/Chunk/Foresta/Chunk_F_L_2.tscn b/Scenes/Chunk_Scene/Chunk/Foresta/Chunk_F_L_2.tscn index 6cbae0a..3aa2766 100644 --- a/Scenes/Chunk_Scene/Chunk/Foresta/Chunk_F_L_2.tscn +++ b/Scenes/Chunk_Scene/Chunk/Foresta/Chunk_F_L_2.tscn @@ -4,9 +4,10 @@ [ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_5cl6b"] [ext_resource type="Material" uid="uid://couj6glsrm6h3" path="res://Materials/Sentiero.tres" id="3_hj70d"] [ext_resource type="Texture2D" uid="uid://3ot7glyivagg" path="res://Assets/Textures/Texture_Sentiero.png" id="4_g8efw"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="4_r7got"] [ext_resource type="Material" uid="uid://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="5_wgav2"] [ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="6_lt21y"] -[ext_resource type="Shader" uid="uid://e3teyipsokeg" path="res://Shaders/Grass_Test.gdshader" id="7_4ftiy"] +[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="8_r7got"] [ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="8_td1ds"] [ext_resource type="PackedScene" uid="uid://623itnb41wew" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloInterno.tscn" id="9_jn6md"] [ext_resource type="PackedScene" uid="uid://sybnjir2d05" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn" id="10_flfvy"] @@ -17,6 +18,16 @@ [ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://Scenes/Test/Tree_V1.tscn" id="16_w82ua"] [ext_resource type="PackedScene" uid="uid://dutvq3oy1ni7c" path="res://Scenes/Chunk_Scene/House/House_XL_1.tscn" id="17_j3hnw"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_xt73x"] +render_priority = 0 +shader = ExtResource("4_r7got") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_jqp0n"] +render_priority = 0 +shader = ExtResource("4_r7got") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ofhgo"] resource_name = "Material" vertex_color_use_as_albedo = true @@ -55,22 +66,47 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_h7yuw") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gsd23"] +render_priority = 0 +shader = ExtResource("4_r7got") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_15ugy"] albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1) albedo_texture = ExtResource("4_g8efw") uv1_scale = Vector3(1.845, 2.325, 1) uv1_offset = Vector3(-0.335, 0, 0) +[sub_resource type="ShaderMaterial" id="ShaderMaterial_pfoxn"] +render_priority = 0 +shader = ExtResource("4_r7got") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vxc6e"] albedo_color = Color(0.19607843, 0.6117647, 0.26666668, 1) +[sub_resource type="ShaderMaterial" id="ShaderMaterial_7wsa6"] +render_priority = 0 +shader = ExtResource("4_r7got") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_6vw5y"] +render_priority = 0 +shader = ExtResource("4_r7got") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="ShaderMaterial" id="ShaderMaterial_odndq"] render_priority = 0 -shader = ExtResource("7_4ftiy") +shader = ExtResource("8_r7got") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("8_td1ds") shader_parameter/leaves_scale = 0.79 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -81,11 +117,16 @@ shader_parameter/cast_shadow_strength = 0.6 [sub_resource type="ShaderMaterial" id="ShaderMaterial_bp8uq"] render_priority = 0 -shader = ExtResource("7_4ftiy") +shader = ExtResource("8_r7got") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("8_td1ds") shader_parameter/leaves_scale = 0.7 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -96,11 +137,16 @@ shader_parameter/cast_shadow_strength = 0.6 [sub_resource type="ShaderMaterial" id="ShaderMaterial_xlq82"] render_priority = 0 -shader = ExtResource("7_4ftiy") +shader = ExtResource("8_r7got") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/alpha_texture = ExtResource("8_td1ds") shader_parameter/leaves_scale = 0.7 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -157,30 +203,36 @@ ovest = true [node name="Chunk_002" parent="." index="0" unique_id=1455965802] transform = Transform3D(8.198544e-06, -100, -4.371139e-06, 0, -4.371139e-06, 100, -108.593, -7.54979e-06, -3.3001182e-13, 0, 0.041, -0.84952193) material_override = ExtResource("3_hj70d") +material_overlay = SubResource("ShaderMaterial_xt73x") [node name="Chunk_005" type="MeshInstance3D" parent="." index="1" unique_id=345649136] transform = Transform3D(1.1920928e-05, -67.78416, -1.4901162e-05, -2.980232e-06, -8.080501e-06, 100, -99.99999, -4.0402506e-06, 0, 2.9563882, -0.023516655, -2.513685) material_override = ExtResource("3_hj70d") +material_overlay = SubResource("ShaderMaterial_jqp0n") mesh = SubResource("ArrayMesh_s4u17") skeleton = NodePath("") [node name="Chunk_007" type="MeshInstance3D" parent="." index="2" unique_id=1021549662] transform = Transform3D(19.377419, 2.072737, 8.354379e-07, -5.7840185e-07, -4.407152e-06, 100, 1.0881187, -36.91172, -1.4877721e-05, 2.7383292, 0, 6.3970623) material_override = ExtResource("3_hj70d") +material_overlay = SubResource("ShaderMaterial_gsd23") mesh = SubResource("ArrayMesh_s4u17") skeleton = NodePath("") [node name="Chunk_006" type="MeshInstance3D" parent="." index="3" unique_id=1766076384] transform = Transform3D(-70.80811, 6.212535e-06, 3.821371e-13, 0, -3.1062675e-06, 100.00001, 6.1902415e-06, 71.06311, 4.371139e-06, 2.4387622, -0.023403406, 0.024760723) material_override = SubResource("StandardMaterial3D_15ugy") +material_overlay = SubResource("ShaderMaterial_pfoxn") mesh = SubResource("ArrayMesh_s4u17") skeleton = NodePath("") [node name="Chunk_004" parent="." index="4" unique_id=2103650482] material_override = SubResource("StandardMaterial3D_vxc6e") +material_overlay = SubResource("ShaderMaterial_7wsa6") [node name="Chunk_038" parent="." index="5" unique_id=476922148] material_override = ExtResource("3_hj70d") +material_overlay = SubResource("ShaderMaterial_6vw5y") [node name="Cube_016" parent="." index="6" unique_id=117542775] visible = false diff --git a/Scenes/Chunk_Scene/House/House_XL_1.tscn b/Scenes/Chunk_Scene/House/House_XL_1.tscn index 27d658f..a5033ea 100644 --- a/Scenes/Chunk_Scene/House/House_XL_1.tscn +++ b/Scenes/Chunk_Scene/House/House_XL_1.tscn @@ -1,11 +1,18 @@ [gd_scene format=3 uid="uid://dutvq3oy1ni7c"] [ext_resource type="PackedScene" uid="uid://ktojgkguvyc7" path="res://Assets/Meshes/House/House_XL_1.fbx" id="1_ixasg"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_66ubd"] [ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://Materials/House.tres" id="2_bjrfw"] [ext_resource type="Material" uid="uid://dbmyfi5t0yfy" path="res://Materials/House_Emissiv.tres" id="3_kj03q"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ktn4d"] +render_priority = 0 +shader = ExtResource("2_66ubd") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [node name="House_XL_1" unique_id=297136650 instance=ExtResource("1_ixasg")] [node name="Cube_188" parent="." index="0" unique_id=389179127] +material_overlay = SubResource("ShaderMaterial_ktn4d") surface_material_override/0 = ExtResource("2_bjrfw") surface_material_override/1 = ExtResource("3_kj03q") diff --git a/Scenes/Chunk_Scene/House/House_XL_4.tscn b/Scenes/Chunk_Scene/House/House_XL_4.tscn index 2e96548..5071049 100644 --- a/Scenes/Chunk_Scene/House/House_XL_4.tscn +++ b/Scenes/Chunk_Scene/House/House_XL_4.tscn @@ -2,10 +2,17 @@ [ext_resource type="PackedScene" uid="uid://dx3rxahad0ilo" path="res://Assets/Meshes/House/House_XL_4.fbx" id="1_r3art"] [ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://Materials/House.tres" id="2_mswf7"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_wanxj"] [ext_resource type="Material" uid="uid://dbmyfi5t0yfy" path="res://Materials/House_Emissiv.tres" id="3_n3fsy"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_fprka"] +render_priority = 0 +shader = ExtResource("2_wanxj") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [node name="House_XL_4" unique_id=1350238174 instance=ExtResource("1_r3art")] [node name="House_XL_4" parent="." index="0" unique_id=479839665] +material_overlay = SubResource("ShaderMaterial_fprka") surface_material_override/0 = ExtResource("2_mswf7") surface_material_override/1 = ExtResource("3_n3fsy") diff --git a/Scenes/Chunk_Scene/House/House_muraglione.tscn b/Scenes/Chunk_Scene/House/House_muraglione.tscn index b7c18ee..5171e79 100644 --- a/Scenes/Chunk_Scene/House/House_muraglione.tscn +++ b/Scenes/Chunk_Scene/House/House_muraglione.tscn @@ -2,8 +2,15 @@ [ext_resource type="PackedScene" uid="uid://coeijlody2qb3" path="res://Assets/Meshes/House/House_Muraglione.fbx" id="1_m4ocs"] [ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://Materials/House.tres" id="2_7l0dg"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_7laxy"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bdf8l"] +render_priority = 0 +shader = ExtResource("2_7laxy") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) [node name="House_Muraglione" unique_id=1060427946 instance=ExtResource("1_m4ocs")] [node name="House_Muraglione" parent="." index="0" unique_id=1620072056] +material_overlay = SubResource("ShaderMaterial_bdf8l") surface_material_override/0 = ExtResource("2_7l0dg") diff --git a/Scenes/Chunk_Scene/Orto/test_orto_big.tscn b/Scenes/Chunk_Scene/Orto/test_orto_big.tscn index 61035cc..76252cb 100644 --- a/Scenes/Chunk_Scene/Orto/test_orto_big.tscn +++ b/Scenes/Chunk_Scene/Orto/test_orto_big.tscn @@ -2,14 +2,20 @@ [ext_resource type="PackedScene" uid="uid://bftrjhcymhasv" path="res://Assets/Meshes/Chunk/Orto/Test_Orto_Big.fbx" id="1_c6jbn"] [ext_resource type="Material" uid="uid://d1xcve6aswe3d" path="res://Materials/TrainChunk.tres" id="2_cjbh2"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="3_ltw7m"] [ext_resource type="PackedScene" uid="uid://sybnjir2d05" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn" id="3_y3s3s"] [ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="4_4svd4"] [ext_resource type="Material" uid="uid://buknp8uj4o22p" path="res://Materials/Grain.tres" id="5_080fg"] -[ext_resource type="Shader" uid="uid://e3teyipsokeg" path="res://Shaders/Grass_Test.gdshader" id="6_dg4am"] [ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="7_jnepa"] +[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="7_le2fi"] [ext_resource type="PackedScene" uid="uid://igbtt2ypx0ks" path="res://Scenes/Chunk_Scene/Prop/Staccionate.tscn" id="8_jnepa"] [ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://Materials/Staccionata.tres" id="9_f73au"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_qtaoh"] +render_priority = 0 +shader = ExtResource("3_ltw7m") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="PlaneMesh" id="PlaneMesh_f73au"] size = Vector2(1, 1) center_offset = Vector3(-0.455, 0, 0) @@ -22,11 +28,16 @@ buffer = PackedFloat32Array(-2.1528693e-08, 0.32034412, 0.94835687, -5.049238, - [sub_resource type="ShaderMaterial" id="ShaderMaterial_gpw8b"] render_priority = 0 -shader = ExtResource("6_dg4am") +shader = ExtResource("7_le2fi") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.43529412, 0.4627451, 0.08235294, 1) shader_parameter/alpha_texture = ExtResource("7_jnepa") shader_parameter/leaves_scale = 0.555 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -41,6 +52,11 @@ instance_count = 120 mesh = SubResource("PlaneMesh_f73au") buffer = PackedFloat32Array(9.692355e-09, -0.37366402, -0.92864215, 3.6775045, -1.001, 4.8175178e-08, -2.983213e-08, -0.1696051, 5.5828863e-08, 0.9286422, -0.373664, -2.0855489, -2.2974392e-08, 0.37366402, 0.92864215, 3.749302, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960469, 1.3701334e-07, -0.9286422, 0.373664, 2.3107827, 1.735746e-08, -0.32758677, 0.9458795, 7.4053288, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960508, 1.4127566e-07, -0.9458795, -0.32758677, -1.6455406, -2.2974392e-08, 0.37366402, 0.92864215, 2.9565315, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960476, 1.3701334e-07, -0.9286422, 0.373664, 1.527951, 1.7357475e-08, -0.32758686, 0.94587946, 7.3617244, -1.001, -1.3917662e-07, -2.983213e-08, -0.16960472, 1.4127565e-07, -0.94587946, -0.32758686, 1.7892385, 9.692359e-09, -0.37366387, -0.9286422, 4.311289, -1.001, 4.8175178e-08, -2.983213e-08, -0.1696052, 5.5828856e-08, 0.9286422, -0.37366387, -2.954412, 2.520541e-08, -0.3648223, -0.9321512, -6.367323, -1.0010002, 7.0649007e-09, -2.9832123e-08, -0.16960514, 1.7451528e-08, 0.9321512, -0.3648223, -2.4076228, -1.1281079e-08, 0.32758683, -0.9458795, -4.7891645, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960493, 5.8584245e-08, 0.9458795, 0.32758683, -0.28233725, -2.2974392e-08, 0.37366402, 0.92864215, 1.6685827, -1.001, -1.3568538e-07, 2.983213e-08, -0.1696047, 1.3701334e-07, -0.9286422, 0.373664, 2.161338, -1.1281084e-08, 0.32758677, -0.9458795, -7.384097, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960496, 5.8584245e-08, 0.9458795, 0.32758677, -0.62812245, 1.7357475e-08, -0.32758686, 0.94587946, 6.7798433, -1.001, -1.3917662e-07, -2.983213e-08, -0.16960467, 1.4127565e-07, -0.94587946, -0.32758686, 2.2899327, -1.1281084e-08, 0.32758677, -0.9458795, -8.477576, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960478, 5.8584245e-08, 0.9458795, 0.32758677, 1.2027439, 1.7357465e-08, -0.32758674, 0.9458796, 3.9509633, -1.0010002, -1.3917665e-07, -2.9832126e-08, -0.16960493, 1.4127568e-07, -0.9458796, -0.32758674, -0.20630813, 1.7357465e-08, -0.3275868, 0.9458795, 6.4539785, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.1696049, 1.4127566e-07, -0.9458795, -0.3275868, 0.07243407, 1.7357463e-08, -0.32758677, 0.9458795, 1.5401063, -1.0010002, -1.3917663e-07, -2.983213e-08, -0.16960493, 1.4127566e-07, -0.9458795, -0.32758677, -0.23104365, 4.092699e-09, 0.35608217, 0.93552476, 5.9184833, -1.0009999, -6.6871905e-08, 2.983212e-08, -0.16960466, 7.31099e-08, -0.9355248, 0.35608214, 2.3796887, -1.1281084e-08, 0.32758677, -0.9458795, -8.309069, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.1696048, 5.8584245e-08, 0.9458795, 0.32758677, 1.1050825, 1.735746e-08, -0.32758677, 0.9458795, 5.420724, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960478, 1.4127566e-07, -0.9458795, -0.32758677, 1.3416946, -2.2974374e-08, 0.37366387, 0.9286422, -0.4576187, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960457, 1.3701333e-07, -0.9286422, 0.37366387, 3.2673774, -2.2974374e-08, 0.37366387, 0.9286422, -2.0613837, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960463, 1.3701333e-07, -0.9286422, 0.37366387, 2.8868132, -1.1281073e-08, 0.32758677, -0.94587946, -3.7469313, -1.001, 5.1666436e-08, 2.9832123e-08, -0.16960499, 5.8584245e-08, 0.9458795, 0.32758674, -0.6938465, -2.2974405e-08, 0.3736641, 0.92864215, -4.011202, -1.001, -1.3568537e-07, 2.983213e-08, -0.16960458, 1.3701333e-07, -0.92864215, 0.3736641, 3.1705139, -2.2974392e-08, 0.37366402, 0.92864215, -0.17029482, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960482, 1.3701334e-07, -0.9286422, 0.373664, 0.7948337, 1.735746e-08, -0.32758677, 0.9458795, 5.145177, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960487, 1.4127566e-07, -0.9458795, -0.32758677, 0.44927573, -2.2974374e-08, 0.37366387, 0.9286422, -1.2640226, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960463, 1.3701333e-07, -0.9286422, 0.37366387, 2.7599154, 1.7357465e-08, -0.3275868, 0.9458795, 8.520489, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.1696049, 1.4127566e-07, -0.9458795, -0.3275868, 0.0016140938, -1.1281082e-08, 0.3275868, -0.9458795, -3.0486126, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960494, 5.8584245e-08, 0.9458795, 0.3275868, -0.3147479, 2.520542e-08, -0.36482245, -0.93215114, -6.4473243, -1.001, 7.0649007e-09, -2.9832137e-08, -0.16960515, 1.7451535e-08, 0.93215114, -0.36482245, -2.4834588, 9.692355e-09, -0.37366402, -0.92864215, 4.5953736, -1.001, 4.8175178e-08, -2.983213e-08, -0.1696051, 5.5828863e-08, 0.9286422, -0.373664, -2.06219, 9.692355e-09, -0.37366402, -0.92864215, -2.1904912, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960506, 5.5828863e-08, 0.9286422, -0.373664, -1.4562932, -1.1281082e-08, 0.3275868, -0.9458795, -6.538126, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960487, 5.8584245e-08, 0.9458795, 0.3275868, 0.4163885, 1.7357465e-08, -0.3275868, 0.9458795, 7.833493, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960496, 1.4127566e-07, -0.9458795, -0.3275868, -0.52726495, -1.1281084e-08, 0.32758677, -0.9458795, -8.462744, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960496, 5.8584245e-08, 0.9458795, 0.32758677, -0.51374376, -1.1281079e-08, 0.32758683, -0.9458795, -6.290415, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960502, 5.8584245e-08, 0.9458795, 0.32758683, -0.99058753, 9.69235e-09, -0.3736641, -0.92864215, 3.0503721, -1.001, 4.817517e-08, -2.983213e-08, -0.16960515, 5.5828856e-08, 0.92864215, -0.3736641, -2.4750464, 9.692355e-09, -0.37366402, -0.92864215, 2.869819, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960514, 5.5828863e-08, 0.9286422, -0.373664, -2.2228713, -1.359486e-08, 0.32758677, 0.9458795, 5.328872, -1.0010002, -1.2767934e-07, 2.9832133e-08, -0.1696047, 1.3041146e-07, -0.9458795, 0.32758677, 1.9912562, 9.692355e-09, -0.37366405, -0.92864215, 1.5446278, -1.001, 4.8175178e-08, -2.9832133e-08, -0.16960508, 5.5828863e-08, 0.9286422, -0.37366402, -1.771817, 1.7357465e-08, -0.3275868, 0.9458795, 7.7914667, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960496, 1.4127566e-07, -0.9458795, -0.3275868, -0.5681108, 1.7357465e-08, -0.3275868, 0.9458795, 3.1237612, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.1696049, 1.4127566e-07, -0.9458795, -0.3275868, 0.036898106, 9.692355e-09, -0.37366402, -0.92864215, -2.650102, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960502, 5.5828863e-08, 0.9286422, -0.373664, -1.008809, -2.2974392e-08, 0.37366402, 0.92864215, 1.1167586, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960482, 1.3701334e-07, -0.9286422, 0.373664, 0.79122454, -1.4374403e-08, 0.345018, -0.9396615, -3.9752893, -1.001, 3.9543814e-08, 2.983213e-08, -0.16960475, 4.7403017e-08, 0.9396615, 0.345018, 1.4943327, -1.1281084e-08, 0.32758677, -0.9458795, -6.783613, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960475, 5.8584245e-08, 0.9458795, 0.32758677, 1.5714875, 9.692359e-09, -0.37366387, -0.9286422, 0.94413877, -1.001, 4.8175178e-08, -2.983213e-08, -0.1696052, 5.5828856e-08, 0.9286422, -0.37366387, -2.8873978, 9.692359e-09, -0.37366387, -0.9286422, 0.4921925, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960521, 5.5828856e-08, 0.9286422, -0.37366387, -3.0368729, 9.692359e-09, -0.37366387, -0.9286422, -3.5989017, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960521, 5.5828856e-08, 0.9286422, -0.37366387, -3.1073236, 9.69235e-09, -0.3736641, -0.92864215, 3.0611868, -1.001, 4.817517e-08, -2.983213e-08, -0.16960517, 5.5828856e-08, 0.92864215, -0.3736641, -2.540046, -6.676871e-09, -0.3450179, -0.93966156, -6.526833, -1.0010002, 1.0061987e-07, -2.9832133e-08, -0.16960517, 1.047365e-07, 0.93966156, -0.3450179, -2.3572717, 9.692355e-09, -0.37366402, -0.92864215, -2.0576916, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960502, 5.5828863e-08, 0.9286422, -0.373664, -1.1358516, -2.2974392e-08, 0.37366402, 0.92864215, 0.15482497, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960482, 1.3701334e-07, -0.9286422, 0.373664, 0.8726417, -2.2974392e-08, 0.37366402, 0.92864215, -0.277515, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960481, 1.3701334e-07, -0.9286422, 0.373664, 0.99379694, 9.692355e-09, -0.37366402, -0.92864215, -1.9126605, -1.001, 4.8175178e-08, -2.983213e-08, -0.169605, 5.5828863e-08, 0.9286422, -0.373664, -0.9797933, -2.2974392e-08, 0.37366402, 0.92864215, -1.3907394, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960481, 1.3701334e-07, -0.9286422, 0.373664, 1.0131606, 1.7357468e-08, -0.32758683, 0.9458795, 3.618083, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.169605, 1.4127566e-07, -0.9458795, -0.32758683, -0.9145817, -6.676871e-09, -0.3450179, -0.93966156, -7.2281466, -1.0010002, 1.0061987e-07, -2.9832133e-08, -0.16960517, 1.047365e-07, 0.93966156, -0.3450179, -2.631467, 9.692359e-09, -0.37366387, -0.9286422, -3.420207, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960517, 5.5828856e-08, 0.9286422, -0.37366387, -2.6042485, 9.692359e-09, -0.37366387, -0.9286422, 0.07056928, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960521, 5.5828856e-08, 0.9286422, -0.37366387, -3.0183277, -2.2974392e-08, 0.37366405, 0.92864215, -1.1000282, -1.001, -1.3568538e-07, 2.9832133e-08, -0.16960475, 1.3701334e-07, -0.9286422, 0.37366402, 1.644978, 9.692355e-09, -0.37366408, -0.92864215, 3.9852202, -1.001, 4.817517e-08, -2.9832137e-08, -0.16960505, 5.5828856e-08, 0.92864215, -0.37366408, -1.5353254, -2.2974392e-08, 0.37366402, 0.92864215, 2.257128, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960478, 1.3701334e-07, -0.9286422, 0.373664, 1.3800203, -2.2974392e-08, 0.37366402, 0.92864215, 0.970901, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960476, 1.3701334e-07, -0.9286422, 0.373664, 1.5372517, -2.2974392e-08, 0.37366402, 0.92864215, 0.7987914, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960485, 1.3701334e-07, -0.9286422, 0.373664, 0.553282, -2.2974392e-08, 0.37366402, 0.92864215, -1.2976632, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960484, 1.3701334e-07, -0.9286422, 0.373664, 0.6665074, -2.2974392e-08, 0.37366402, 0.92864215, -0.261946, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960485, 1.3701334e-07, -0.9286422, 0.373664, 0.41849136, -2.2974374e-08, 0.37366387, 0.9286422, 0.085152864, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960466, 1.3701333e-07, -0.9286422, 0.37366387, 2.4113102, 9.692355e-09, -0.37366402, -0.92864215, -0.44121456, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960505, 5.5828863e-08, 0.9286422, -0.373664, -1.3692474, -2.2974374e-08, 0.37366387, 0.9286422, -6.7261186, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960457, 1.3701333e-07, -0.9286422, 0.37366387, 3.3184776, -1.1281082e-08, 0.3275868, -0.9458795, -4.1011667, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960491, 5.8584245e-08, 0.9458795, 0.3275868, 0.080925405, -2.2974374e-08, 0.37366387, 0.9286422, 5.8956356, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960458, 1.3701333e-07, -0.9286422, 0.37366387, 3.3935037, -2.2974392e-08, 0.37366402, 0.92864215, -0.61690474, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960484, 1.3701334e-07, -0.9286422, 0.373664, 0.6069258, -1.1281082e-08, 0.3275868, -0.9458795, -7.847772, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.1696049, 5.8584245e-08, 0.9458795, 0.3275868, 0.04126668, 1.735746e-08, -0.32758677, 0.9458795, 6.3522077, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960512, 1.4127566e-07, -0.9458795, -0.32758677, -2.0294251, 9.692359e-09, -0.37366387, -0.9286422, 7.9268055, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960523, 5.5828856e-08, 0.9286422, -0.37366387, -3.200705, 9.692359e-09, -0.37366387, -0.9286422, -0.55269456, -1.001, 4.8175178e-08, -2.983213e-08, -0.1696052, 5.5828856e-08, 0.9286422, -0.37366387, -2.966764, 9.692355e-09, -0.37366402, -0.92864215, 2.1401453, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960499, 5.5828863e-08, 0.9286422, -0.373664, -0.89347845, 1.7357465e-08, -0.3275868, 0.9458795, 5.9760017, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960491, 1.4127566e-07, -0.9458795, -0.3275868, -0.024564981, -2.2974392e-08, 0.37366402, 0.92864215, 0.09790039, -1.001, -1.3568538e-07, 2.983213e-08, -0.1696047, 1.3701334e-07, -0.9286422, 0.373664, 2.1451797, -2.2974405e-08, 0.3736641, 0.92864215, 5.150418, -1.001, -1.3568537e-07, 2.983213e-08, -0.16960461, 1.3701333e-07, -0.92864215, 0.3736641, 2.8713315, 1.7357465e-08, -0.3275868, 0.9458795, 8.083343, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960496, 1.4127566e-07, -0.9458795, -0.3275868, -0.41304874, 1.7357475e-08, -0.32758686, 0.94587946, 8.148268, -1.001, -1.3917662e-07, -2.983213e-08, -0.16960464, 1.4127565e-07, -0.94587946, -0.32758686, 2.7485912, 1.7357465e-08, -0.3275868, 0.9458795, 6.545308, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960499, 1.4127566e-07, -0.9458795, -0.3275868, -0.77470297, 9.692359e-09, -0.37366387, -0.9286422, 1.0193517, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960517, 5.5828856e-08, 0.9286422, -0.37366387, -2.6527472, 1.7357465e-08, -0.3275868, 0.9458795, 4.478307, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960497, 1.4127566e-07, -0.9458795, -0.3275868, -0.56856734, 9.692359e-09, -0.37366387, -0.9286422, -5.299208, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960517, 5.5828856e-08, 0.9286422, -0.37366387, -2.486113, 9.69235e-09, -0.3736641, -0.92864215, 4.8170853, -1.001, 4.817517e-08, -2.983213e-08, -0.1696052, 5.5828856e-08, 0.92864215, -0.3736641, -2.7806785, 1.7357468e-08, -0.32758683, 0.9458795, 3.12817, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.169605, 1.4127566e-07, -0.9458795, -0.32758683, -0.9254127, -2.2974392e-08, 0.37366402, 0.92864215, -2.0780315, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960469, 1.3701334e-07, -0.9286422, 0.373664, 2.1376233, 1.7357463e-08, -0.32758677, 0.9458795, 0.25900808, -1.0010002, -1.3917663e-07, -2.983213e-08, -0.1696049, 1.4127566e-07, -0.9458795, -0.32758677, 0.1359134, 1.7357458e-08, -0.3275867, 0.9458796, 3.3306696, -1.0010002, -1.3917665e-07, -2.9832126e-08, -0.16960499, 1.4127568e-07, -0.9458796, -0.3275867, -0.9256637, 1.7357468e-08, -0.32758683, 0.9458795, 5.9811563, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960484, 1.4127566e-07, -0.9458795, -0.32758683, 0.80324596, 9.692355e-09, -0.37366402, -0.92864215, -5.195421, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960515, 5.5828863e-08, 0.9286422, -0.373664, -2.2328227, 1.735746e-08, -0.32758677, 0.9458795, 5.9846144, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960509, 1.4127566e-07, -0.9458795, -0.32758677, -1.7965424, 7.497942e-09, -0.37366402, 0.92864215, 4.635846, -1.001, -9.422587e-08, -2.983213e-08, -0.16960508, 9.855076e-08, -0.9286422, -0.373664, -1.7290375, -1.1281082e-08, 0.3275868, -0.9458795, -5.256567, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.1696049, 5.8584245e-08, 0.9458795, 0.3275868, 0.16878569, -1.1281082e-08, 0.3275868, -0.9458795, -7.750266, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960493, 5.8584245e-08, 0.9458795, 0.3275868, -0.040379643, 1.735746e-08, -0.32758677, 0.9458795, 6.0485682, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960505, 1.4127566e-07, -0.9458795, -0.32758677, -1.1882826, 9.692355e-09, -0.37366402, -0.92864215, -0.97715795, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960502, 5.5828863e-08, 0.9286422, -0.373664, -1.1345088, -2.2974374e-08, 0.37366387, 0.9286422, -2.6023898, -1.001, -1.3568538e-07, 2.983213e-08, -0.1696046, 1.3701333e-07, -0.9286422, 0.37366387, 3.1153889, -1.1281079e-08, 0.32758683, -0.9458795, -3.6444993, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960482, 5.8584245e-08, 0.9458795, 0.32758683, 0.8328664, 1.7357468e-08, -0.32758683, 0.9458795, 3.2084932, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.169605, 1.4127566e-07, -0.9458795, -0.32758683, -0.8412145, -2.2974374e-08, 0.37366387, 0.9286422, -5.3867407, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960464, 1.3701333e-07, -0.9286422, 0.37366387, 2.6603007, -2.2974392e-08, 0.37366402, 0.92864215, 2.454749, -1.001, -1.3568538e-07, 2.983213e-08, -0.1696047, 1.3701334e-07, -0.9286422, 0.373664, 2.0635166, -2.2974392e-08, 0.37366402, 0.92864215, 2.5002089, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960473, 1.3701334e-07, -0.9286422, 0.373664, 1.7269962, -2.2974405e-08, 0.3736641, 0.92864215, -1.3908234, -1.001, -1.3568537e-07, 2.983213e-08, -0.1696046, 1.3701333e-07, -0.92864215, 0.3736641, 3.2391288, 1.735746e-08, -0.32758677, 0.9458795, 5.0801845, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960472, 1.4127566e-07, -0.9458795, -0.32758677, 1.8288492, 9.692355e-09, -0.37366402, -0.92864215, -1.145145, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960502, 5.5828863e-08, 0.9286422, -0.373664, -1.1011791, 1.7357465e-08, -0.3275868, 0.9458795, 3.0535302, -1.0010002, -1.3917663e-07, -2.9832133e-08, -0.16960494, 1.4127566e-07, -0.9458795, -0.3275868, -0.23773643, 1.7357475e-08, -0.32758686, 0.94587946, 8.109728, -1.001, -1.3917662e-07, -2.983213e-08, -0.1696047, 1.4127565e-07, -0.94587946, -0.32758686, 2.004213, -2.297439e-08, 0.37366393, 0.9286422, -3.3827283, -1.001, -1.3568538e-07, 2.9832123e-08, -0.1696047, 1.3701333e-07, -0.9286422, 0.37366393, 2.1634054, -2.2974374e-08, 0.37366387, 0.9286422, -0.50665045, -1.001, -1.3568538e-07, 2.983213e-08, -0.1696046, 1.3701333e-07, -0.9286422, 0.37366387, 3.1240268, -2.2974392e-08, 0.37366402, 0.92864215, 0.46188325, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960482, 1.3701334e-07, -0.9286422, 0.373664, 0.742105, 9.692359e-09, -0.37366387, -0.9286422, 1.3877182, -1.001, 4.8175178e-08, -2.983213e-08, -0.16960515, 5.5828856e-08, 0.9286422, -0.37366387, -2.447095, -2.2974374e-08, 0.37366387, 0.9286422, 5.823498, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960463, 1.3701333e-07, -0.9286422, 0.37366387, 2.8401337, 9.692359e-09, -0.37366387, -0.9286422, 2.819086, -1.001, 4.8175178e-08, -2.983213e-08, -0.1696052, 5.5828856e-08, 0.9286422, -0.37366387, -2.736487, -2.2974374e-08, 0.37366387, 0.9286422, 6.204763, -1.001, -1.3568538e-07, 2.983213e-08, -0.1696046, 1.3701333e-07, -0.9286422, 0.37366387, 3.0454488, -1.1281084e-08, 0.32758677, -0.9458795, -5.3583198, -1.0010002, 5.1666433e-08, 2.9832133e-08, -0.16960478, 5.8584245e-08, 0.9458795, 0.32758677, 1.3366839, 9.692355e-09, -0.37366402, -0.92864215, -1.0937166, -1.001, 4.8175178e-08, -2.983213e-08, -0.169605, 5.5828863e-08, 0.9286422, -0.373664, -0.98223436, -2.2974392e-08, 0.37366402, 0.92864215, -2.957705, -1.001, -1.3568538e-07, 2.983213e-08, -0.16960478, 1.3701334e-07, -0.9286422, 0.373664, 1.3066032, -3.6839293e-08, 0.3450179, 0.93966156, 7.1627984, -1.0010002, -1.8813009e-07, 2.9832133e-08, -0.16960463, 1.8688432e-07, -0.93966156, 0.3450179, 2.7669983) +[sub_resource type="ShaderMaterial" id="ShaderMaterial_5pv7q"] +render_priority = 0 +shader = ExtResource("3_ltw7m") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1jtrr"] resource_name = "lambert48" vertex_color_use_as_albedo = true @@ -81,6 +97,11 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_kn617") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_80mjd"] +render_priority = 0 +shader = ExtResource("3_ltw7m") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_me5kk"] resource_name = "lambert48" vertex_color_use_as_albedo = true @@ -121,15 +142,36 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_d4r25") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_d43nw"] +render_priority = 0 +shader = ExtResource("3_ltw7m") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_arh3e"] +render_priority = 0 +shader = ExtResource("3_ltw7m") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_x3coc"] +render_priority = 0 +shader = ExtResource("3_ltw7m") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_d5t7o"] +render_priority = 0 +shader = ExtResource("3_ltw7m") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [node name="Test_Orto_Big" unique_id=381322647 instance=ExtResource("1_c6jbn")] -[node name="Orto_Big" parent="." index="0" unique_id=277342752] +[node name="Orto_Big" parent="." index="0" unique_id=256470342] visible = false -[node name="Orto_Big_001" parent="." index="1" unique_id=1875272326] +[node name="Orto_Big_001" parent="." index="1" unique_id=410750692] material_override = ExtResource("2_cjbh2") +material_overlay = SubResource("ShaderMaterial_qtaoh") -[node name="Orto_Big_002" parent="." index="2" unique_id=1988176579] +[node name="Orto_Big_002" parent="." index="2" unique_id=82710015] material_override = ExtResource("2_cjbh2") [node name="Test_BordiSentiero" parent="." index="3" unique_id=1395614268 instance=ExtResource("3_y3s3s")] @@ -175,13 +217,13 @@ multimesh = SubResource("MultiMesh_6bpc0") [node name="MSH_Staccionate" parent="." index="14" unique_id=118332436 instance=ExtResource("8_jnepa")] transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -8.28755, 0, -3.5974507) -[node name="MSH_Staccioanta_1" parent="MSH_Staccionate" index="3" unique_id=1889502099] +[node name="MSH_Staccioanta_1" parent="MSH_Staccionate" index="3" unique_id=1140003948] transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.51893044, 0, 0.51255083) [node name="MSH_Staccionate2" parent="." index="15" unique_id=144527053 instance=ExtResource("8_jnepa")] transform = Transform3D(-8.742277e-08, 0, -1.9999999, 0, 2, 0, 1.9999999, 0, -8.742277e-08, 9.340015, 0, -2.4890351) -[node name="MSH_Staccioanta_1" parent="MSH_Staccionate2" index="3" unique_id=1889502099] +[node name="MSH_Staccioanta_1" parent="MSH_Staccionate2" index="3" unique_id=1140003948] transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.51893044, 0, 0.51255083) [node name="MSH_Staccionate3" parent="." index="16" unique_id=2046101668 instance=ExtResource("8_jnepa")] @@ -190,46 +232,52 @@ transform = Transform3D(-1.9999996, 0, 1.7484552e-07, 0, 2, 0, -1.7484552e-07, 0 [node name="MSH_Staccioanta_6" type="MeshInstance3D" parent="MSH_Staccionate3" index="1" unique_id=305373806] transform = Transform3D(0.99999994, 0, 7.1054274e-15, 0, 1, 0, -7.1054274e-15, 0, 0.99999994, 4.599587, 0, -3.5762787e-07) material_override = ExtResource("9_f73au") +material_overlay = SubResource("ShaderMaterial_5pv7q") mesh = SubResource("ArrayMesh_u848i") skeleton = NodePath("") [node name="MSH_Staccioanta_5" type="MeshInstance3D" parent="MSH_Staccionate3" index="4" unique_id=516140039] transform = Transform3D(0.99999994, 0, 7.1054274e-15, 0, 1, 0, -7.1054274e-15, 0, 0.99999994, 3.5456085, 0, -2.3841858e-07) material_override = ExtResource("9_f73au") +material_overlay = SubResource("ShaderMaterial_80mjd") mesh = SubResource("ArrayMesh_h5j06") skeleton = NodePath("") [node name="MSH_Staccioanta_7" type="MeshInstance3D" parent="MSH_Staccionate3" index="5" unique_id=888497933] transform = Transform3D(0.9999999, 0, 1.4210855e-14, 0, 1, 0, -1.4210855e-14, 0, 0.9999999, 5.6432476, 0, -3.5762787e-07) material_override = ExtResource("9_f73au") +material_overlay = SubResource("ShaderMaterial_d43nw") mesh = SubResource("ArrayMesh_h5j06") skeleton = NodePath("") [node name="MSH_Staccioanta_8" type="MeshInstance3D" parent="MSH_Staccionate3" index="6" unique_id=528223485] transform = Transform3D(0.9999998, 0, 1.4210855e-14, 0, 1, 0, -1.4210855e-14, 0, 0.9999998, 3.1590548, 0, 3.492248) material_override = ExtResource("9_f73au") +material_overlay = SubResource("ShaderMaterial_arh3e") mesh = SubResource("ArrayMesh_u848i") skeleton = NodePath("") [node name="MSH_Staccioanta_9" type="MeshInstance3D" parent="MSH_Staccionate3" index="7" unique_id=1921992964] transform = Transform3D(0.9999998, 0, 1.4210855e-14, 0, 1, 0, -1.4210855e-14, 0, 0.9999998, 2.1050773, 0, 3.492248) material_override = ExtResource("9_f73au") +material_overlay = SubResource("ShaderMaterial_x3coc") mesh = SubResource("ArrayMesh_h5j06") skeleton = NodePath("") [node name="MSH_Staccioanta_10" type="MeshInstance3D" parent="MSH_Staccionate3" index="8" unique_id=248684280] transform = Transform3D(0.99999976, 0, 2.1316282e-14, 0, 1, 0, -2.1316282e-14, 0, 0.99999976, 4.202716, 0, 3.492248) material_override = ExtResource("9_f73au") +material_overlay = SubResource("ShaderMaterial_d5t7o") mesh = SubResource("ArrayMesh_h5j06") skeleton = NodePath("") -[node name="MSH_Staccioanta_1" parent="MSH_Staccionate3" index="9" unique_id=1889502099] +[node name="MSH_Staccioanta_1" parent="MSH_Staccionate3" index="9" unique_id=1140003948] transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.51893044, 0, 0.51255083) [node name="MSH_Staccionate4" parent="." index="17" unique_id=770030142 instance=ExtResource("8_jnepa")] transform = Transform3D(-8.742276e-08, 0, 1.9999996, 0, 2, 0, -1.9999996, 0, -8.742276e-08, -9.410571, 0, 2.5085397) -[node name="MSH_Staccioanta_1" parent="MSH_Staccionate4" index="3" unique_id=1889502099] +[node name="MSH_Staccioanta_1" parent="MSH_Staccionate4" index="3" unique_id=1140003948] transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -0.51893044, 0, 0.51255083) [editable path="MSH_Staccionate"] diff --git a/Scenes/Chunk_Scene/Orto/test_orto_small.tscn b/Scenes/Chunk_Scene/Orto/test_orto_small.tscn index 58ae323..7fa7ad7 100644 --- a/Scenes/Chunk_Scene/Orto/test_orto_small.tscn +++ b/Scenes/Chunk_Scene/Orto/test_orto_small.tscn @@ -2,19 +2,30 @@ [ext_resource type="PackedScene" uid="uid://fo75ribfqa66" path="res://Assets/Meshes/Chunk/Orto/Test_Orto_Small.fbx" id="1_a761l"] [ext_resource type="Material" uid="uid://d1xcve6aswe3d" path="res://Materials/TrainChunk.tres" id="2_atyaj"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="3_d5tbt"] [ext_resource type="PackedScene" uid="uid://sybnjir2d05" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn" id="3_el0wm"] [ext_resource type="PackedScene" uid="uid://bfvtlpkcnbgke" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_Rettilineo.tscn" id="4_nkb5e"] -[ext_resource type="Shader" uid="uid://cw7lu2soglhqu" path="res://Shaders/Grain_Test.gdshader" id="5_rnryk"] +[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="6_d5tbt"] [ext_resource type="Texture2D" uid="uid://dluagib52he0x" path="res://Assets/Textures/grass_thin.png" id="6_rnryk"] [ext_resource type="PackedScene" uid="uid://igbtt2ypx0ks" path="res://Scenes/Chunk_Scene/Prop/Staccionate.tscn" id="7_rnryk"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_580to"] +render_priority = 0 +shader = ExtResource("3_d5tbt") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="ShaderMaterial" id="ShaderMaterial_og5cy"] render_priority = 0 -shader = ExtResource("5_rnryk") +shader = ExtResource("6_d5tbt") +shader_parameter/billboard_enabled = true +shader_parameter/wind_enabled = true shader_parameter/base_color = Color(0.6910962, 0.46426672, 0.08072326, 1) shader_parameter/alpha_texture = ExtResource("6_rnryk") shader_parameter/leaves_scale = 1.0 shader_parameter/rotation_degrees = 180.0 +shader_parameter/texture_offset = Vector2(0, 0) +shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -35,13 +46,14 @@ buffer = PackedFloat32Array(0.19220352, 0.98237413, 0, 1.3770782, -0.98237413, 0 [node name="Test_Orto_Small" unique_id=1422441497 instance=ExtResource("1_a761l")] -[node name="Orto_Small" parent="." index="0" unique_id=1234053739] +[node name="Orto_Small" parent="." index="0" unique_id=705093191] visible = false -[node name="Orto_Small_001" parent="." index="1" unique_id=604518221] +[node name="Orto_Small_001" parent="." index="1" unique_id=1144157791] material_override = ExtResource("2_atyaj") +material_overlay = SubResource("ShaderMaterial_580to") -[node name="Orto_Small_002" parent="." index="2" unique_id=880897058] +[node name="Orto_Small_002" parent="." index="2" unique_id=1636639678] material_override = ExtResource("2_atyaj") [node name="Test_BordiSentiero" parent="." index="3" unique_id=1395614268 instance=ExtResource("3_el0wm")] diff --git a/Scenes/Chunk_Scene/Prop/Staccionate.tscn b/Scenes/Chunk_Scene/Prop/Staccionate.tscn index c527384..540c37b 100644 --- a/Scenes/Chunk_Scene/Prop/Staccionate.tscn +++ b/Scenes/Chunk_Scene/Prop/Staccionate.tscn @@ -2,6 +2,22 @@ [ext_resource type="PackedScene" uid="uid://di6tbgetp5y8q" path="res://Assets/Meshes/Chunk/Prop/MSH_Staccionate.fbx" id="1_j7em5"] [ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://Materials/Staccionata.tres" id="2_2tbpd"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="3_xsxbg"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2jjob"] +render_priority = 0 +shader = ExtResource("3_xsxbg") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_5qj1r"] +render_priority = 0 +shader = ExtResource("3_xsxbg") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_xsxbg"] +render_priority = 0 +shader = ExtResource("3_xsxbg") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1jtrr"] resource_name = "lambert48" @@ -43,23 +59,32 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_d4r25") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_p4545"] +render_priority = 0 +shader = ExtResource("3_xsxbg") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [node name="MSH_Staccionate" unique_id=118332436 instance=ExtResource("1_j7em5")] transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0) -[node name="MSH_Staccioanta_3" parent="." index="0" unique_id=1776318188] +[node name="MSH_Staccioanta_3" parent="." index="0" unique_id=1218567814] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0037837923, 0, 0) material_override = ExtResource("2_2tbpd") +material_overlay = SubResource("ShaderMaterial_2jjob") -[node name="MSH_Staccioanta_2" parent="." index="1" unique_id=311534552] +[node name="MSH_Staccioanta_2" parent="." index="1" unique_id=223276087] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.99746555, 0, 0) material_override = ExtResource("2_2tbpd") +material_overlay = SubResource("ShaderMaterial_5qj1r") [node name="MSH_Staccioanta_4" type="MeshInstance3D" parent="." index="2" unique_id=997680864] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.99746555, 0, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.3966007, 0, 0) material_override = ExtResource("2_2tbpd") +material_overlay = SubResource("ShaderMaterial_xsxbg") mesh = SubResource("ArrayMesh_h5j06") skeleton = NodePath("") -[node name="MSH_Staccioanta_1" parent="." index="3" unique_id=1889502099] +[node name="MSH_Staccioanta_1" parent="." index="3" unique_id=1140003948] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.0379614, 0, 0) material_override = ExtResource("2_2tbpd") +material_overlay = SubResource("ShaderMaterial_p4545") diff --git a/Scenes/Gameplay.tscn b/Scenes/Gameplay.tscn index c783404..70acea7 100644 --- a/Scenes/Gameplay.tscn +++ b/Scenes/Gameplay.tscn @@ -3,6 +3,7 @@ [ext_resource type="Script" uid="uid://dcaxomfkulrig" path="res://Scripts/Day_night_Cycle.gd" id="1_cr3ar"] [ext_resource type="Material" uid="uid://dknvdsov2jrg6" path="res://Materials/Fog.tres" id="2_4xv0h"] [ext_resource type="Material" uid="uid://7bu5f4o0v8vw" path="res://Materials/Rain.tres" id="3_4wepm"] +[ext_resource type="Material" uid="uid://c0hckftuuyag0" path="res://Materials/Snow.tres" id="3_l1dl0"] [ext_resource type="Material" uid="uid://cknq8qhom7ral" path="res://Materials/ShadowPostProcess.tres" id="4_00nhk"] [ext_resource type="Texture2D" uid="uid://v4gyjc8j7ygj" path="res://Assets/Textures/Lightingl.png" id="4_gffi5"] [ext_resource type="Shader" uid="uid://l6rkqonic7dj" path="res://Shaders/Sky.gdshader" id="5_bedag"] @@ -63,11 +64,11 @@ shader_parameter/night_intensity = 0.0 shader_parameter/cloud_noise = SubResource("NoiseTexture2D_10fbe") shader_parameter/sun_color = Color(1, 1, 1, 1) shader_parameter/cloud_center_color = Color(1, 1, 1, 1) -shader_parameter/cloud_edge_color = Color(0.7584623, 0.86291385, 0.91784096, 1) +shader_parameter/cloud_edge_color = Color(0.8, 0.85, 0.9, 1) shader_parameter/cloud_direction = Vector2(0.05, 0.02) shader_parameter/cloud_speed = 0.1 shader_parameter/cloud_scale = 0.5 -shader_parameter/cloud_threshold = 0.5 +shader_parameter/cloud_threshold = 0.50000002375 shader_parameter/cloud_edge_thickness = 0.406000019285 shader_parameter/cloud_edge_softness = 0.0 shader_parameter/star_density = 1500.0 @@ -218,22 +219,35 @@ material = SubResource("ShaderMaterial_gpe07") subdivide_depth = 3 orientation = 1 -[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_qqnw7"] +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_l1dl0"] particle_flag_align_y = true -emission_shape_scale = Vector3(70, 70, 70) +emission_shape_scale = Vector3(50, 10, 50) emission_shape = 3 emission_box_extents = Vector3(1, 1, 1) direction = Vector3(0, -1, 0) spread = 0.0 -initial_velocity_min = 15.0 -initial_velocity_max = 20.0 -collision_mode = 2 -sub_emitter_mode = 3 -sub_emitter_amount_at_collision = 1 +initial_velocity_min = 10.0 +initial_velocity_max = 25.0 +gravity = Vector3(0, -9, 0) + +[sub_resource type="QuadMesh" id="QuadMesh_l1dl0"] +material = ExtResource("3_4wepm") +size = Vector2(0.05, 0.8) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kjb07"] +transparency = 1 +albedo_color = Color(0.8646751, 0.86467516, 0.8646751, 1) +emission_enabled = true +emission = Color(1, 1, 1, 1) +emission_energy_multiplier = 0.2 +billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false [sub_resource type="QuadMesh" id="QuadMesh_54p3t"] -material = ExtResource("3_4wepm") -size = Vector2(0.05, 1) +material = SubResource("StandardMaterial3D_kjb07") +size = Vector2(0.2, 0.2) [sub_resource type="QuadMesh" id="QuadMesh_jfpsf"] @@ -248,6 +262,7 @@ shader_parameter/leaves_scale = 1.0 shader_parameter/rotation_degrees = 0.0 shader_parameter/texture_offset = Vector2(0, 0) shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.0 @@ -274,8 +289,10 @@ turbulence_enabled = true [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_on20a"] transparency = 1 -shading_mode = 0 vertex_color_use_as_albedo = true +emission_enabled = true +emission = Color(0.9452602, 0.8269828, 0.0956705, 1) +emission_energy_multiplier = 16.0 billboard_mode = 3 particles_anim_h_frames = 1 particles_anim_v_frames = 1 @@ -345,6 +362,7 @@ shader_parameter/leaves_scale = 1.0 shader_parameter/rotation_degrees = 0.0 shader_parameter/texture_offset = Vector2(0, 0.12) shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.5 @@ -364,6 +382,7 @@ shader_parameter/leaves_scale = 1.0 shader_parameter/rotation_degrees = 0.0 shader_parameter/texture_offset = Vector2(0, 0) shader_parameter/opacity = 1.0 +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) shader_parameter/height_min = 0.0 shader_parameter/height_max = 5.0 shader_parameter/shadow_intensity = 0.0 @@ -716,18 +735,17 @@ shader_parameter/blur_amount = 0.70000003325 shader_parameter/focus_size = 0.450000021375 shader_parameter/transition_softness = 0.3 -[node name="DemoForest" type="Node3D" unique_id=265279494 node_paths=PackedStringArray("nodo_polvere", "particelle_lucciole", "particelle_vento")] +[node name="DemoForest" type="Node3D" unique_id=265279494 node_paths=PackedStringArray("nodo_polvere", "particelle_lucciole", "particelle_vento", "bottone_neve", "bottone_nevicata", "overlay_nebbia_schermo", "particelle_neve")] script = ExtResource("1_cr3ar") color_pomeriggio = Color(0.9999996, 0.6887105, 0.42199263, 1) color_notte = Color(0.18353948, 0.18552834, 0.48496485, 1) sky_horizon_mattina = Color(0.18031025, 0.35056397, 0.5027117, 1) sky_horizon_pomeriggio = Color(0.58704865, 0.36022854, 0.09941775, 1) -energia_luce_notte = 0.998 +energia_luce_notte = 1.0 materiale_nebbia = ExtResource("2_4xv0h") -materiale_pioggia_gocce = ExtResource("3_4wepm") +materiale_pioggia_gocce = ExtResource("3_l1dl0") materiale_nuvole = ExtResource("4_00nhk") nodo_polvere = NodePath("SubViewportContainer/SubViewport/ScreenEffect/PolvereAtmosferica") -colore_mood_pioggia = Color(0.64196956, 0.72286916, 0.80763674, 1) colore_fulmine = Color(0.99999946, 0.9857114, 0.46342158, 1) fulmini_min = 2 fulmini_max = 4 @@ -744,6 +762,10 @@ quantita_lucciole = 400 raggio_spawn_lucciole = 40.0 particelle_vento = NodePath("SubViewportContainer/SubViewport/World/Camere/CameraPivot/Wind") quantita_vento = 50 +bottone_neve = NodePath("CanvasLayer/CheckButtonNeve") +bottone_nevicata = NodePath("CanvasLayer/CheckButtonNevicata") +overlay_nebbia_schermo = NodePath("SubViewportContainer/SubViewport/ScreenEffect2/Nebbia") +particelle_neve = NodePath("SubViewportContainer/SubViewport/World/Camere/NeveN") [node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=427161585] @@ -751,6 +773,7 @@ quantita_vento = 50 offset_top = 583.0 offset_right = 44.0 offset_bottom = 607.0 +text = "P" [node name="OptionButton" type="OptionButton" parent="CanvasLayer" unique_id=2115563700] anchors_preset = 2 @@ -760,6 +783,18 @@ offset_top = -41.0 offset_right = 44.0 grow_vertical = 0 +[node name="CheckButtonNeve" type="CheckButton" parent="CanvasLayer" unique_id=1345861838] +offset_top = 562.63 +offset_right = 44.0 +offset_bottom = 586.63 +text = "N" + +[node name="CheckButtonNevicata" type="CheckButton" parent="CanvasLayer" unique_id=178115852] +offset_left = 50.915 +offset_top = 566.0 +offset_right = 94.91504 +offset_bottom = 590.0 + [node name="GPUParticlesCollisionHeightField3D" type="GPUParticlesCollisionHeightField3D" parent="." unique_id=518451865] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.428604, -6.3361816, 43.268837) size = Vector3(51.92697, 11.827637, 85.98999) @@ -850,12 +885,21 @@ alpha_cut = 1 texture = ExtResource("4_gffi5") [node name="PioggiaCadente" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/World/Camere" unique_id=1150140046] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30.411049) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 8.002199, 30.411049) +cast_shadow = 0 +extra_cull_margin = 10.0 +amount = 5000 +lifetime = 1.5 +process_material = SubResource("ParticleProcessMaterial_l1dl0") +draw_pass_1 = SubResource("QuadMesh_l1dl0") + +[node name="NeveN" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/World/Camere" unique_id=698604166] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 21.260101, 30.411049) cast_shadow = 0 extra_cull_margin = 10.0 amount = 10000 -lifetime = 1.5 -process_material = SubResource("ParticleProcessMaterial_qqnw7") +lifetime = 4.0 +process_material = ExtResource("3_l1dl0") draw_pass_1 = SubResource("QuadMesh_54p3t") [node name="CameraFrontale" type="Camera3D" parent="SubViewportContainer/SubViewport/World/Camere" unique_id=1311130431] diff --git a/Scenes/Test/Main_Train.tscn b/Scenes/Test/Main_Train.tscn index d50f8c7..f29ea2b 100644 --- a/Scenes/Test/Main_Train.tscn +++ b/Scenes/Test/Main_Train.tscn @@ -2,9 +2,15 @@ [ext_resource type="PackedScene" uid="uid://yjj64i1atwyg" path="res://Assets/Test/Main_Train.fbx" id="1_8k78i"] [ext_resource type="Material" uid="uid://df1ghvw3d61x8" path="res://Materials/Treno1.tres" id="2_crne2"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_dbt0l"] [ext_resource type="Material" uid="uid://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="3_tf27f"] [ext_resource type="Material" uid="uid://bu8wmlp0ffark" path="res://Materials/Treno3.tres" id="4_e08y7"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tvivt"] +render_priority = 0 +shader = ExtResource("2_dbt0l") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="PlaneMesh" id="PlaneMesh_8k78i"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_crne2"] @@ -15,8 +21,9 @@ emission_energy_multiplier = 5.87 [node name="Train2" unique_id=206892833 instance=ExtResource("1_8k78i")] transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0) -[node name="polySurface3708_002" parent="." index="0" unique_id=1301675555] +[node name="polySurface3708_002" parent="." index="0" unique_id=1525054251] transform = Transform3D(99.99998, 0, 0, 0, -4.3711375e-06, 99.99999, 0, -99.99997, -4.3711384e-06, 0, 1.5, 0) +material_overlay = SubResource("ShaderMaterial_tvivt") surface_material_override/0 = ExtResource("2_crne2") surface_material_override/1 = ExtResource("3_tf27f") surface_material_override/2 = ExtResource("2_crne2") diff --git a/Scenes/Test/Rotaie_Blockout.tscn b/Scenes/Test/Rotaie_Blockout.tscn index 3917825..68b64dc 100644 --- a/Scenes/Test/Rotaie_Blockout.tscn +++ b/Scenes/Test/Rotaie_Blockout.tscn @@ -1,6 +1,7 @@ [gd_scene format=3 uid="uid://qyml1s00773u"] [ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_ysg1u"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_0y2rr"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_m6haf"] render_priority = 0 @@ -17,6 +18,11 @@ shader_parameter/cast_shadow_strength = 0.6 shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_energy = 0.0 +[sub_resource type="ShaderMaterial" id="ShaderMaterial_duyun"] +render_priority = 0 +shader = ExtResource("2_0y2rr") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="BoxMesh" id="BoxMesh_w0ibq"] size = Vector3(0.2, 0.2, 2) @@ -35,6 +41,11 @@ shader_parameter/cast_shadow_strength = 0.6 shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_energy = 0.0 +[sub_resource type="ShaderMaterial" id="ShaderMaterial_hb1ej"] +render_priority = 0 +shader = ExtResource("2_0y2rr") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="ShaderMaterial" id="ShaderMaterial_pp4r2"] render_priority = 0 shader = ExtResource("1_ysg1u") @@ -50,6 +61,11 @@ shader_parameter/cast_shadow_strength = 0.6 shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_energy = 0.0 +[sub_resource type="ShaderMaterial" id="ShaderMaterial_pur2n"] +render_priority = 0 +shader = ExtResource("2_0y2rr") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="BoxMesh" id="BoxMesh_ysg1u"] size = Vector3(3.705, 0.2, 0.565) @@ -68,6 +84,11 @@ shader_parameter/cast_shadow_strength = 0.6 shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_energy = 0.0 +[sub_resource type="ShaderMaterial" id="ShaderMaterial_qv8m2"] +render_priority = 0 +shader = ExtResource("2_0y2rr") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="ShaderMaterial" id="ShaderMaterial_5u2u8"] render_priority = 0 shader = ExtResource("1_ysg1u") @@ -91,21 +112,25 @@ size = Vector3(3.705, 0.2, 1.92) [node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=1040579890] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1681762, 0.21419203, 0) material_override = SubResource("ShaderMaterial_m6haf") +material_overlay = SubResource("ShaderMaterial_duyun") mesh = SubResource("BoxMesh_w0ibq") [node name="MeshInstance3D2" type="MeshInstance3D" parent="." unique_id=1870708237] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.0276046, 0.21419203, 0) material_override = SubResource("ShaderMaterial_fttrp") +material_overlay = SubResource("ShaderMaterial_hb1ej") mesh = SubResource("BoxMesh_w0ibq") [node name="MeshInstance3D3" type="MeshInstance3D" parent="." unique_id=170245195] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.08, 0.058, 0.5) material_override = SubResource("ShaderMaterial_pp4r2") +material_overlay = SubResource("ShaderMaterial_pur2n") mesh = SubResource("BoxMesh_ysg1u") [node name="MeshInstance3D4" type="MeshInstance3D" parent="." unique_id=1389288735] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.08, 0.058, -0.5) material_override = SubResource("ShaderMaterial_x2uev") +material_overlay = SubResource("ShaderMaterial_qv8m2") mesh = SubResource("BoxMesh_ysg1u") [node name="MeshInstance3D5" type="MeshInstance3D" parent="." unique_id=1376217081] diff --git a/Scenes/Test/ToriGate.tscn b/Scenes/Test/ToriGate.tscn index 3efa8af..b8827fb 100644 --- a/Scenes/Test/ToriGate.tscn +++ b/Scenes/Test/ToriGate.tscn @@ -2,8 +2,14 @@ [ext_resource type="PackedScene" uid="uid://bcsbg7br73nqc" path="res://Assets/Test/ToriGate.fbx" id="1_6kg7a"] [ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="2_1ibku"] +[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="2_ttfuh"] [ext_resource type="Texture2D" uid="uid://cdlgd0h5qeb7k" path="res://Assets/Textures/Palette_train.png" id="3_6126s"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_yswvv"] +render_priority = 0 +shader = ExtResource("2_ttfuh") +shader_parameter/snow_color = Color(0.95, 0.98, 1, 1) + [sub_resource type="ShaderMaterial" id="ShaderMaterial_3mqnu"] render_priority = 0 shader = ExtResource("2_1ibku") @@ -11,6 +17,7 @@ shader_parameter/albedo_color = Color(1, 1, 1, 1) shader_parameter/albedo_texture = ExtResource("3_6126s") shader_parameter/use_texture = true shader_parameter/uv_scale = Vector2(1, 1) +shader_parameter/palette_shift_y = 0.0 shader_parameter/light_steps = 3.0 shader_parameter/step_softness = 0.1 shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1) @@ -21,5 +28,6 @@ shader_parameter/emission_energy = 0.0 [node name="Tori1" unique_id=1219093134 instance=ExtResource("1_6kg7a")] -[node name="Sphere_001" parent="." index="0" unique_id=1609600992] +[node name="Sphere_001" parent="." index="0" unique_id=2137140690] +material_overlay = SubResource("ShaderMaterial_yswvv") surface_material_override/0 = SubResource("ShaderMaterial_3mqnu") diff --git a/Scripts/Day_night_Cycle.gd b/Scripts/Day_night_Cycle.gd index c55c51b..13cb697 100644 --- a/Scripts/Day_night_Cycle.gd +++ b/Scripts/Day_night_Cycle.gd @@ -54,13 +54,21 @@ extends Node3D @export var raggio_spawn_lucciole: float = 20.0 @export var altezza_spawn_lucciole: float = 3.0 -# --- NUOVO: GRUPPO VENTO --- @export_group("Vento") @export var particelle_vento: GPUParticles3D @export var quantita_vento: int = 100 @export var raggio_spawn_vento: float = 25.0 @export var altezza_spawn_vento: float = 5.0 +# --- GRUPPO NEVE AGGIORNATO --- +@export_group("Neve") +@export var bottone_neve: Button +@export var bottone_nevicata: Button +@export var overlay_nebbia_schermo: ColorRect +@export var particelle_neve: GPUParticles3D +@export var quantita_neve: int = 2000 +@export var tempo_transizione_neve: float = 10.0 + @onready var sole: DirectionalLight3D = $DirectionalLight3D @onready var ambiente: WorldEnvironment = $WorldEnvironment @onready var menu_giornata: OptionButton = $CanvasLayer/OptionButton @@ -79,6 +87,13 @@ var is_cinematic_mode: bool = false var timer_cinematic_env: float = 0.0 var sto_cambiando_in_cinematic: bool = false +# Variabili di stato per la neve +var is_snow_accumulated: bool = false +var is_actively_snowing: bool = false +var snow_tween: Tween +var cold_tween: Tween +var actual_snow_amount: float = 0.0 + func _ready() -> void: if menu_giornata: menu_giornata.clear() @@ -102,13 +117,27 @@ func _ready() -> void: if proc_mat: proc_mat.emission_box_extents = Vector3(raggio_spawn_lucciole, altezza_spawn_lucciole, raggio_spawn_lucciole) - # --- NUOVO: INIZIALIZZAZIONE VENTO --- + # Inizializzazione Vento if particelle_vento: particelle_vento.emitting = false particelle_vento.amount = quantita_vento var proc_mat_vento = particelle_vento.process_material as ParticleProcessMaterial if proc_mat_vento: proc_mat_vento.emission_box_extents = Vector3(raggio_spawn_vento, altezza_spawn_vento, raggio_spawn_vento) + + # --- INIZIALIZZAZIONE NEVE --- + set_snow_amount(0.0) + + if particelle_neve: + particelle_neve.emitting = false + particelle_neve.amount = quantita_neve + + if bottone_neve: + bottone_neve.pressed.connect(_on_snow_button_pressed) + + if bottone_nevicata: + bottone_nevicata.pressed.connect(_on_nevicata_button_pressed) + bottone_nevicata.disabled = true _resetta_timer_fulmine() @@ -341,3 +370,52 @@ func spawn_single_godray() -> void: ray.global_position = nodo_camere.global_position + Vector3(random_x, godray_spawn_height, random_z) ray.rotation_degrees = godray_rotation_degrees ray.scale = godray_scale + +# ========================================== +# --- LOGICA NEVE AGGIORNATA --- +# ========================================== + +func _on_snow_button_pressed(): + is_snow_accumulated = !is_snow_accumulated + + # Sblocca il pulsante nevicata solo se c'è accumulo + if bottone_nevicata: + bottone_nevicata.disabled = !is_snow_accumulated + + # Se sciogliamo la neve, fermiamo anche la nevicata attiva + if not is_snow_accumulated and is_actively_snowing: + _on_nevicata_button_pressed() + + var target_snow: float = 1.0 if is_snow_accumulated else 0.0 + + if snow_tween and snow_tween.is_valid(): + snow_tween.kill() + + snow_tween = create_tween() + snow_tween.tween_method(set_snow_amount, actual_snow_amount, target_snow, tempo_transizione_neve) + +func _on_nevicata_button_pressed(): + if not is_snow_accumulated: + return + + is_actively_snowing = !is_actively_snowing + + if particelle_neve: + particelle_neve.emitting = is_actively_snowing + + if overlay_nebbia_schermo and overlay_nebbia_schermo.material: + var target_opacity: float = 1.0 if is_actively_snowing else 0.135 + var target_radius: float = 0.350 if is_actively_snowing else 0.465 + + if cold_tween and cold_tween.is_valid(): + cold_tween.kill() + + cold_tween = create_tween() + cold_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT) + cold_tween.set_parallel(true) + cold_tween.tween_property(overlay_nebbia_schermo.material, "shader_parameter/max_opacity", target_opacity, 4.0) + cold_tween.tween_property(overlay_nebbia_schermo.material, "shader_parameter/clear_center_radius", target_radius, 4.0) + +func set_snow_amount(value: float): + actual_snow_amount = value + RenderingServer.global_shader_parameter_set("global_snow_amount", value) diff --git a/Shaders/snow.gdshader b/Shaders/snow.gdshader new file mode 100644 index 0000000..ce57d4a --- /dev/null +++ b/Shaders/snow.gdshader @@ -0,0 +1,32 @@ +shader_type spatial; +// Blend mix ci permette di sovrapporre la neve senza nascondere l'oggetto sotto +render_mode blend_mix, depth_draw_opaque; + +// Legge la variabile globale che abbiamo creato nelle impostazioni! +global uniform float global_snow_amount; + +uniform vec4 snow_color : source_color = vec4(0.95, 0.98, 1.0, 1.0); // Bianco leggermente azzurrino + +void fragment() { + // 1. Calcoliamo la normale (la direzione) della faccia nello spazio del mondo + vec3 world_normal = (INV_VIEW_MATRIX * vec4(NORMAL, 0.0)).xyz; + + // 2. Il dot product ci dice quanto la faccia punta verso l'alto (Y = 1.0) + // Se punta esattamente in alto restituisce 1.0, se punta di lato 0.0, in basso -1.0 + float up_dot = dot(world_normal, vec3(0.0, 1.0, 0.0)); + + // 3. Creiamo la "maschera" della neve basata sul parametro globale + // Usiamo smoothstep per avere un bordo un po' sfumato e non seghettato + float snow_mask = smoothstep(1.0 - global_snow_amount, 1.1 - global_snow_amount, up_dot); + + // Assicuriamoci che se il global_snow_amount è 0, la maschera sia 0 + snow_mask *= step(0.01, global_snow_amount); + + // 4. Applichiamo il colore e la trasparenza + ALBEDO = snow_color.rgb; + ALPHA = snow_mask; // Se la maschera è 1 (guarda in alto), è opaco. Altrimenti è invisibile. + + // Rendiamo la neve leggermente riflettente/ghiacciata + ROUGHNESS = 0.3; + SPECULAR = 0.5; +} \ No newline at end of file diff --git a/Shaders/snow.gdshader.uid b/Shaders/snow.gdshader.uid new file mode 100644 index 0000000..5dedfc1 --- /dev/null +++ b/Shaders/snow.gdshader.uid @@ -0,0 +1 @@ +uid://do0tct77dfhef diff --git a/Shaders/tree_leaves.gdshader b/Shaders/tree_leaves.gdshader index 5065225..69b75fa 100644 --- a/Shaders/tree_leaves.gdshader +++ b/Shaders/tree_leaves.gdshader @@ -1,25 +1,28 @@ shader_type spatial; -// Rimosso 'unshaded' per ricevere le ombre. -// Aggiunto 'ambient_light_disabled' per proteggere i tuoi colori piatti. render_mode specular_disabled, cull_disabled, ambient_light_disabled; -// --- GLOBAL UNIFORMS (Vento) --- +// --- GLOBAL UNIFORMS (Vento e Neve) --- global uniform float wind_scale; global uniform float wind_speed; global uniform float wind_strength; global uniform vec3 wind_direction; global uniform sampler2D wind_noise : filter_linear_mipmap; +global uniform float global_snow_amount; // --- PARAMETRI ESTETICI --- -uniform bool billboard_enabled = true; // <--- PULSANTE ON/OFF BILLBOARD -uniform bool wind_enabled = true; // <--- PULSANTE ON/OFF VENTO +uniform bool billboard_enabled = true; +uniform bool wind_enabled = true; uniform vec4 base_color : source_color = vec4(0.2, 0.6, 0.3, 1.0); uniform sampler2D alpha_texture : source_color, filter_nearest; uniform float leaves_scale = 1.0; uniform float rotation_degrees = 0.0; uniform vec2 texture_offset = vec2(0.0, 0.0); -uniform float opacity : hint_range(0.0, 1.0) = 1.0; // <--- NUOVO PARAMETRO OPACITÀ +uniform float opacity : hint_range(0.0, 1.0) = 1.0; + +// Consiglio: Usa un bianco leggermente grigio/azzurro per la neve, non bianco puro! +// Es: vec4(0.8, 0.85, 0.9, 1.0) +uniform vec4 snow_color : source_color = vec4(0.85, 0.9, 0.95, 1.0); // --- CONTROLLO GRADIENTE E RANDOM --- uniform float height_min = 0.0; @@ -29,10 +32,11 @@ uniform float highlight_intensity : hint_range(0.0, 1.0) = 0.3; uniform float light_steps : hint_range(1.0, 10.0) = 4.0; uniform float random_mix : hint_range(0.0, 1.0) = 0.3; -// NUOVO PARAMETRO: Intensità delle ombre proiettate su questo materiale uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6; varying vec3 v_final_color; +// ---> AGGIUNTO: Passiamo il fattore di ombra al fragment <--- +varying float v_shade_factor; float hash(vec3 p) { p = fract(p * 0.1031); @@ -59,13 +63,15 @@ void vertex() { float combined_factor = mix(h_factor, leaf_rand, random_mix); combined_factor = ceil(combined_factor * light_steps) / light_steps; + // Salviamo il fattore per usarlo sulla neve! + 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); - // --- LOGICA TRASFORMAZIONE (BILLBOARD vs STANDARD) --- + // --- LOGICA TRASFORMAZIONE --- if (billboard_enabled) { - // Logica Billboard: guarda sempre la camera vec3 view_pos_origin = (VIEW_MATRIX * vec4(instance_pos, 1.0)).xyz; vec2 offset = (UV - 0.5) * leaves_scale; @@ -79,16 +85,12 @@ void vertex() { MODELVIEW_MATRIX[3].xyz = final_pos; VERTEX = vec3(0.0); } else { - // Logica Standard: usa la rotazione e posizione della mesh - // Applichiamo comunque la rotazione extra e lo scale se desiderato float c = cos(total_angle); float s = sin(total_angle); - // Modifichiamo il vertice locale prima della trasformazione world vec2 local_v = (VERTEX.xy) * leaves_scale; VERTEX.x = local_v.x * c - local_v.y * s; VERTEX.y = local_v.x * s + local_v.y * c; - // La MODELVIEW_MATRIX rimane quella di default fornita da Godot } } @@ -96,20 +98,27 @@ void fragment() { vec2 shifted_uv = UV + texture_offset; vec4 tex = texture(alpha_texture, shifted_uv); - ALBEDO = v_final_color; - // Moltiplichiamo l'alpha della texture per il nuovo parametro opacity + float top_mask = 1.0 - shifted_uv.y; + float snow_mask = smoothstep(1.0 - global_snow_amount, 1.2 - global_snow_amount, top_mask); + snow_mask *= step(0.01, global_snow_amount); + + // ---> IL SEGRETO È QUI <--- + // Scuriamo la neve usando lo stesso gradiente scuro/chiaro usato per le foglie + vec3 dark_snow = snow_color.rgb * (1.0 - shadow_intensity); + vec3 shaded_snow = mix(dark_snow, snow_color.rgb, v_shade_factor); + + // Mescoliamo il colore della foglia con la neve correttamente ombreggiata + 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; + ROUGHNESS = 0.02; } -// --- NUOVA LOGICA LUCE (Ombre Proiettate e Fix Quadrati) --- void light() { float shadow_factor = mix(1.0 - cast_shadow_strength, 1.0, ATTENUATION); - - // Maschera morbida per nascondere i quadrati float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION); - DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask; } \ No newline at end of file diff --git a/project.godot b/project.godot index 93a0f48..9a4a907 100644 --- a/project.godot +++ b/project.godot @@ -54,3 +54,7 @@ wind_strength={ "type": "float", "value": 0.4 } +global_snow_amount={ +"type": "float", +"value": 0.0 +}