Add Global Gradient on shader - Revamp lighting
This commit is contained in:
@@ -1,16 +1,18 @@
|
|||||||
[gd_resource type="ShaderMaterial" format=3 uid="uid://biaudrjlfoflm"]
|
[gd_resource type="ShaderMaterial" format=3 uid="uid://biaudrjlfoflm"]
|
||||||
|
|
||||||
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_xfqg1"]
|
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_xfqg1"]
|
||||||
[ext_resource type="Texture2D" uid="uid://diocw7vrerh45" path="res://Assets/Textures/Texture_Train.png" id="2_s2ba8"]
|
[ext_resource type="Texture2D" uid="uid://diocw7vrerh45" path="res://Assets/Textures/Texture_Train.png" id="2_xfqg1"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
render_priority = 0
|
render_priority = 0
|
||||||
shader = ExtResource("1_xfqg1")
|
shader = ExtResource("1_xfqg1")
|
||||||
shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
||||||
shader_parameter/albedo_texture = ExtResource("2_s2ba8")
|
shader_parameter/albedo_texture = ExtResource("2_xfqg1")
|
||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = 0.0
|
||||||
|
shader_parameter/gradient_end_y = 5.0
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ shader_parameter/albedo_color = Color(0.46921068, 0.28503138, 0.05139889, 1)
|
|||||||
shader_parameter/use_texture = false
|
shader_parameter/use_texture = false
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = 0.0
|
||||||
|
shader_parameter/gradient_end_y = 5.0
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ shader_parameter/albedo_color = Color(0.41427386, 0.22169134, 0.039388184, 1)
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(3, 3)
|
shader_parameter/uv_scale = Vector2(3, 3)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = 0.0
|
||||||
|
shader_parameter/gradient_end_y = 1.5
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ shader_parameter/texture_offset = Vector2(0, 0)
|
|||||||
shader_parameter/opacity = 1.0
|
shader_parameter/opacity = 1.0
|
||||||
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
shader_parameter/snow_color = Color(0.85, 0.9, 0.95, 1)
|
||||||
shader_parameter/height_min = 6.0
|
shader_parameter/height_min = 6.0
|
||||||
shader_parameter/height_max = 9.26
|
shader_parameter/height_max = 12.0
|
||||||
shader_parameter/shadow_intensity = 0.8270000392825
|
shader_parameter/shadow_intensity = 0.650000030875
|
||||||
shader_parameter/highlight_intensity = 0.0
|
shader_parameter/highlight_intensity = 0.0
|
||||||
shader_parameter/light_steps = 10.0
|
shader_parameter/light_steps = 10.0
|
||||||
shader_parameter/random_mix = 0.0
|
shader_parameter/random_mix = 0.0
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ glow_strength = 0.8
|
|||||||
glow_bloom = 1.0
|
glow_bloom = 1.0
|
||||||
fog_enabled = true
|
fog_enabled = true
|
||||||
fog_mode = 1
|
fog_mode = 1
|
||||||
fog_density = 0.25
|
fog_density = 0.05
|
||||||
fog_sky_affect = 0.0
|
fog_sky_affect = 0.0
|
||||||
volumetric_fog_length = 11.38
|
volumetric_fog_length = 11.38
|
||||||
volumetric_fog_ambient_inject = 0.27
|
volumetric_fog_ambient_inject = 0.27
|
||||||
@@ -333,16 +333,16 @@ point_count = 93
|
|||||||
|
|
||||||
[sub_resource type="PlaneMesh" id="PlaneMesh_l1dl0"]
|
[sub_resource type="PlaneMesh" id="PlaneMesh_l1dl0"]
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_oqwsk"]
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_6k3cw"]
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_8vrnd"]
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_16mw0"]
|
||||||
noise = SubResource("FastNoiseLite_oqwsk")
|
noise = SubResource("FastNoiseLite_6k3cw")
|
||||||
seamless = true
|
seamless = true
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kjb07"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kjb07"]
|
||||||
render_priority = 0
|
render_priority = 0
|
||||||
shader = ExtResource("23_u10x4")
|
shader = ExtResource("23_u10x4")
|
||||||
shader_parameter/fog_noise = SubResource("NoiseTexture2D_8vrnd")
|
shader_parameter/fog_noise = SubResource("NoiseTexture2D_16mw0")
|
||||||
shader_parameter/use_red_as_alpha = true
|
shader_parameter/use_red_as_alpha = true
|
||||||
shader_parameter/fog_color = Color(0.8, 0.8509804, 0.9019608, 0.60784316)
|
shader_parameter/fog_color = Color(0.8, 0.8509804, 0.9019608, 0.60784316)
|
||||||
shader_parameter/scroll_speed = Vector2(0.01, 0.01)
|
shader_parameter/scroll_speed = Vector2(0.01, 0.01)
|
||||||
@@ -472,6 +472,8 @@ shader_parameter/albedo_texture = ExtResource("23_4udcq")
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = -1.0
|
||||||
|
shader_parameter/gradient_end_y = 1.0
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
@@ -487,6 +489,8 @@ shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = -1.0
|
||||||
|
shader_parameter/gradient_end_y = 1.0
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
@@ -602,6 +606,8 @@ shader_parameter/albedo_texture = ExtResource("26_vpybn")
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(5, 5)
|
shader_parameter/uv_scale = Vector2(5, 5)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = -1.0
|
||||||
|
shader_parameter/gradient_end_y = 1.0
|
||||||
shader_parameter/light_steps = 4.0
|
shader_parameter/light_steps = 4.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
@@ -617,6 +623,8 @@ shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(4.5, 3)
|
shader_parameter/uv_scale = Vector2(4.5, 3)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = -1.0
|
||||||
|
shader_parameter/gradient_end_y = 1.0
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
@@ -726,26 +734,46 @@ shadow_mesh = SubResource("ArrayMesh_odcbb")
|
|||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_u10x4"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_u10x4"]
|
||||||
shader = ExtResource("47_7j5hj")
|
shader = ExtResource("47_7j5hj")
|
||||||
shader_parameter/fog_color = Color(0.85, 0.9, 0.95, 1)
|
shader_parameter/fog_color = Color(0.85, 0.9, 0.95, 1)
|
||||||
shader_parameter/clear_center_radius = 0.4650000220875
|
shader_parameter/clear_center_radius = 0.39200001862
|
||||||
shader_parameter/edge_softness = 0.30900001397898
|
shader_parameter/edge_softness = 0.30900001397898
|
||||||
shader_parameter/max_opacity = 0.1350000064125
|
shader_parameter/max_opacity = 0.10000000475
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kwbnj"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kwbnj"]
|
||||||
shader = ExtResource("46_nonqo")
|
shader = ExtResource("46_nonqo")
|
||||||
shader_parameter/blur_amount = 0.70000003325
|
shader_parameter/blur_amount = 0.70000003325
|
||||||
shader_parameter/focus_size = 0.450000021375
|
shader_parameter/focus_size = 0.250000011875
|
||||||
shader_parameter/transition_softness = 0.3
|
shader_parameter/transition_softness = 0.3
|
||||||
|
|
||||||
[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")]
|
[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")
|
script = ExtResource("1_cr3ar")
|
||||||
|
color_mattina = Color(0.9342753, 0.77912414, 0.6057529, 1)
|
||||||
|
color_pomeriggio = Color(0.9485261, 0.6254264, 0.38133258, 1)
|
||||||
color_notte = Color(0.18353948, 0.18552834, 0.48496485, 1)
|
color_notte = Color(0.18353948, 0.18552834, 0.48496485, 1)
|
||||||
sky_horizon_mattina = Color(0.18031025, 0.35056397, 0.5027117, 1)
|
esposizione_mattina = 0.8
|
||||||
sky_horizon_pomeriggio = Color(0.46011674, 0.27727094, 0.0674034, 1)
|
esposizione_pomeriggio = 0.7
|
||||||
energia_luce_notte = 1.0
|
esposizione_notte = 0.9
|
||||||
|
sky_top_mattina = Color(0.11613401, 0.35679278, 0.54143786, 1)
|
||||||
|
sky_horizon_mattina = Color(0.4636712, 0.67270684, 0.86346304, 1)
|
||||||
|
sky_horizon_pomeriggio = Color(0.93524647, 0.5983081, 0.8058805, 1)
|
||||||
|
grad_top_mattina = Color(0.792616, 0.87687194, 0.9582116, 1)
|
||||||
|
grad_top_pomeriggio = Color(0.8627451, 0.24313726, 0.5411765, 1)
|
||||||
|
grad_top_notte = Color(0.16370186, 0.16380265, 0.26770788, 1)
|
||||||
|
grad_bot_mattina = Color(0.05778669, 0.07872791, 0.21493542, 1)
|
||||||
|
grad_bot_pomeriggio = Color(0.24934003, 0.018751867, 0.042065084, 1)
|
||||||
|
intensita_grad_mattina = 0.1
|
||||||
|
intensita_grad_pomeriggio = 0.1
|
||||||
|
intensita_grad_notte = 0.5
|
||||||
|
colore_nebbia_pomeriggio = Color(0.9627952, 0.5901167, 0.75933033, 1)
|
||||||
|
densita_nebbia_mattina = 0.02
|
||||||
|
densita_nebbia_pomeriggio = 0.04
|
||||||
|
bloom_mattina = 0.4
|
||||||
|
bloom_notte = 0.8
|
||||||
|
energia_luce_notte = 0.6
|
||||||
materiale_nebbia = ExtResource("2_4xv0h")
|
materiale_nebbia = ExtResource("2_4xv0h")
|
||||||
materiale_pioggia_gocce = ExtResource("3_l1dl0")
|
materiale_pioggia_gocce = ExtResource("3_4wepm")
|
||||||
materiale_nuvole = ExtResource("4_00nhk")
|
materiale_nuvole = ExtResource("4_00nhk")
|
||||||
nodo_polvere = NodePath("SubViewportContainer/SubViewport/ScreenEffect/PolvereAtmosferica")
|
nodo_polvere = NodePath("SubViewportContainer/SubViewport/ScreenEffect/PolvereAtmosferica")
|
||||||
|
colore_mood_pioggia = Color(0.9777618, 0.9831695, 0.9889775, 1)
|
||||||
colore_fulmine = Color(0.99999946, 0.9857114, 0.46342158, 1)
|
colore_fulmine = Color(0.99999946, 0.9857114, 0.46342158, 1)
|
||||||
fulmini_min = 2
|
fulmini_min = 2
|
||||||
fulmini_max = 4
|
fulmini_max = 4
|
||||||
@@ -809,8 +837,8 @@ shadow_enabled = true
|
|||||||
transform = Transform3D(0.4848096, 0.6108477, 0.62595904, -6.256785e-08, -0.71569276, 0.6984152, 0.8746197, -0.33859846, -0.34697473, 0, 4.540125, 24.469929)
|
transform = Transform3D(0.4848096, 0.6108477, 0.62595904, -6.256785e-08, -0.71569276, 0.6984152, 0.8746197, -0.33859846, -0.34697473, 0, 4.540125, 24.469929)
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
shadow_bias = 0.2
|
shadow_bias = 0.2
|
||||||
shadow_opacity = 0.8
|
shadow_opacity = 0.9
|
||||||
shadow_blur = 0.0
|
shadow_blur = 0.2
|
||||||
directional_shadow_mode = 0
|
directional_shadow_mode = 0
|
||||||
directional_shadow_fade_start = 0.9
|
directional_shadow_fade_start = 0.9
|
||||||
|
|
||||||
@@ -950,13 +978,13 @@ skeleton = NodePath("../../../../../..")
|
|||||||
surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
|
surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
|
||||||
|
|
||||||
[node name="Fog" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1575620825]
|
[node name="Fog" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1575620825]
|
||||||
transform = Transform3D(-0.00869238, -0.66189253, 16.6858, 0.28842512, 28.96452, 0.8943858, -85.35572, 20.688795, -0.20234364, -31.420975, 5.3996058, 49.11194)
|
transform = Transform3D(-0.00869238, -0.66189253, 16.6858, 0.2884251, 28.964518, 0.89438576, -85.35571, 20.688793, -0.20234363, -30.12199, 5.3996053, 49.111935)
|
||||||
mesh = SubResource("PlaneMesh_gsfny")
|
mesh = SubResource("PlaneMesh_gsfny")
|
||||||
skeleton = NodePath("../../../../../..")
|
skeleton = NodePath("../../../../../..")
|
||||||
surface_material_override/0 = ExtResource("2_4xv0h")
|
surface_material_override/0 = ExtResource("2_4xv0h")
|
||||||
|
|
||||||
[node name="Fog2" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=567097306]
|
[node name="Fog2" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=567097306]
|
||||||
transform = Transform3D(-0.00869238, -0.66189253, 16.6858, 0.28842497, 28.96451, 0.8943855, -85.35568, 20.688786, -0.20234357, 24.53299, 6.1797442, 49.908123)
|
transform = Transform3D(-0.00869238, -0.66189253, 16.6858, 0.28842452, 28.964481, 0.8943846, -85.35557, 20.688757, -0.20234334, 22.599558, 6.179737, 49.908066)
|
||||||
mesh = SubResource("PlaneMesh_gsfny")
|
mesh = SubResource("PlaneMesh_gsfny")
|
||||||
skeleton = NodePath("../../../../../..")
|
skeleton = NodePath("../../../../../..")
|
||||||
surface_material_override/0 = ExtResource("2_4xv0h")
|
surface_material_override/0 = ExtResource("2_4xv0h")
|
||||||
@@ -20903,6 +20931,7 @@ mouse_filter = 2
|
|||||||
|
|
||||||
[node name="ScreenEffect2" type="CanvasLayer" parent="SubViewportContainer/SubViewport" unique_id=2088057254]
|
[node name="ScreenEffect2" type="CanvasLayer" parent="SubViewportContainer/SubViewport" unique_id=2088057254]
|
||||||
layer = 3
|
layer = 3
|
||||||
|
follow_viewport_scale = 0.001
|
||||||
|
|
||||||
[node name="Nebbia" type="ColorRect" parent="SubViewportContainer/SubViewport/ScreenEffect2" unique_id=1102385319]
|
[node name="Nebbia" type="ColorRect" parent="SubViewportContainer/SubViewport/ScreenEffect2" unique_id=1102385319]
|
||||||
material = SubResource("ShaderMaterial_u10x4")
|
material = SubResource("ShaderMaterial_u10x4")
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ shader_parameter/albedo_texture = ExtResource("6_cp4eh")
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = 0.0
|
||||||
|
shader_parameter/gradient_end_y = 10.0
|
||||||
|
shader_parameter/gradient_intensity = 0.5
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
@@ -67,6 +70,9 @@ shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = 0.0
|
||||||
|
shader_parameter/gradient_end_y = 10.0
|
||||||
|
shader_parameter/gradient_intensity = 0.5
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
@@ -83,6 +89,9 @@ shader_parameter/albedo_texture = ExtResource("6_cp4eh")
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = -5.62
|
||||||
|
shader_parameter/gradient_end_y = 10.505
|
||||||
|
shader_parameter/gradient_intensity = 0.898000042655
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
@@ -131,6 +140,9 @@ shader_parameter/albedo_color = Color(1, 1, 1, 1)
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_start_y = 0.0
|
||||||
|
shader_parameter/gradient_end_y = 10.0
|
||||||
|
shader_parameter/gradient_intensity = 1.0
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
@@ -441,8 +453,6 @@ surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
|
|||||||
transform = Transform3D(2.2424157, -0.032632887, -0.26249015, -0.20656824, 0.36186597, -2.4493637, 0.11802024, 1.2534002, 0.7003156, 9.543743, -0.9267349, 7.6301384)
|
transform = Transform3D(2.2424157, -0.032632887, -0.26249015, -0.20656824, 0.36186597, -2.4493637, 0.11802024, 1.2534002, 0.7003156, 9.543743, -0.9267349, 7.6301384)
|
||||||
material_override = SubResource("ShaderMaterial_ftth4")
|
material_override = SubResource("ShaderMaterial_ftth4")
|
||||||
mesh = SubResource("ArrayMesh_qp6sq")
|
mesh = SubResource("ArrayMesh_qp6sq")
|
||||||
skeleton = NodePath("")
|
|
||||||
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
|
|
||||||
|
|
||||||
[node name="rock25" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1886752766]
|
[node name="rock25" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1886752766]
|
||||||
transform = Transform3D(1.665653, -0.024230719, -0.19494617, -0.15343758, 0.2686961, -1.8190906, 0.08766484, 0.93068624, 0.5201096, 11.364948, -2.545082, 6.1496983)
|
transform = Transform3D(1.665653, -0.024230719, -0.19494617, -0.15343758, 0.2686961, -1.8190906, 0.08766484, 0.93068624, 0.5201096, 11.364948, -2.545082, 6.1496983)
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
|
|||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_crne2"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_crne2"]
|
||||||
emission_enabled = true
|
emission_enabled = true
|
||||||
emission = Color(0.7907942, 0.40736446, 3.85046e-07, 1)
|
emission = Color(1, 0.75645417, 0.2204, 1)
|
||||||
emission_energy_multiplier = 5.87
|
|
||||||
|
|
||||||
[node name="Train2" unique_id=206892833 instance=ExtResource("1_8k78i")]
|
[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)
|
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
|
||||||
@@ -139,19 +138,19 @@ omni_attenuation = 0.367
|
|||||||
[node name="SpotLight3D2" type="SpotLight3D" parent="OmniLight3D2" index="0" unique_id=1940430623]
|
[node name="SpotLight3D2" type="SpotLight3D" parent="OmniLight3D2" index="0" unique_id=1940430623]
|
||||||
transform = Transform3D(-0.9991066, -0.0071844957, -0.041647904, 0.039682645, 0.1795881, -0.9829413, 0.014541405, -0.98371583, -0.17914255, -2.2325838, -0.021801949, -0.18683863)
|
transform = Transform3D(-0.9991066, -0.0071844957, -0.041647904, 0.039682645, 0.1795881, -0.9829413, 0.014541405, -0.98371583, -0.17914255, -2.2325838, -0.021801949, -0.18683863)
|
||||||
light_color = Color(0.8039216, 0.6784314, 0.3254902, 1)
|
light_color = Color(0.8039216, 0.6784314, 0.3254902, 1)
|
||||||
light_energy = 1.795
|
light_energy = 4.0
|
||||||
light_cull_mask = 4294967293
|
light_cull_mask = 4294967293
|
||||||
spot_range = 12.168
|
spot_range = 18.0
|
||||||
spot_attenuation = 0.91
|
spot_attenuation = 1.2
|
||||||
spot_angle = 31.25
|
spot_angle = 35.0
|
||||||
spot_angle_attenuation = 8.876516
|
spot_angle_attenuation = 8.876516
|
||||||
|
|
||||||
[node name="SpotLight3D3" type="SpotLight3D" parent="OmniLight3D2" index="1" unique_id=1754775574]
|
[node name="SpotLight3D3" type="SpotLight3D" parent="OmniLight3D2" index="1" unique_id=1754775574]
|
||||||
transform = Transform3D(-0.9991066, -0.0071844957, -0.041647904, 0.039682645, 0.1795881, -0.9829413, 0.014541405, -0.98371583, -0.17914255, 0.31696087, -0.020600319, -0.18641448)
|
transform = Transform3D(-0.9991066, -0.0071844957, -0.041647904, 0.039682645, 0.1795881, -0.9829413, 0.014541405, -0.98371583, -0.17914255, 0.31696087, -0.020600319, -0.18641448)
|
||||||
light_color = Color(0.8574047, 0.65361816, 0.27671134, 1)
|
light_color = Color(0.8574047, 0.65361816, 0.27671134, 1)
|
||||||
light_energy = 1.795
|
light_energy = 4.0
|
||||||
light_cull_mask = 4294967293
|
light_cull_mask = 4294967293
|
||||||
spot_range = 12.168
|
spot_range = 18.0
|
||||||
spot_attenuation = 0.91
|
spot_attenuation = 1.2
|
||||||
spot_angle = 31.25
|
spot_angle = 35.0
|
||||||
spot_angle_attenuation = 8.876516
|
spot_angle_attenuation = 8.876516
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ shader_parameter/albedo_texture = ExtResource("3_6126s")
|
|||||||
shader_parameter/use_texture = true
|
shader_parameter/use_texture = true
|
||||||
shader_parameter/uv_scale = Vector2(1, 1)
|
shader_parameter/uv_scale = Vector2(1, 1)
|
||||||
shader_parameter/palette_shift_y = 0.0
|
shader_parameter/palette_shift_y = 0.0
|
||||||
|
shader_parameter/gradient_color = Color(0.1, 0.1, 0.2, 1)
|
||||||
|
shader_parameter/gradient_start_y = 0.0
|
||||||
|
shader_parameter/gradient_end_y = 5.0
|
||||||
|
shader_parameter/gradient_intensity = 0.800000038
|
||||||
shader_parameter/light_steps = 3.0
|
shader_parameter/light_steps = 3.0
|
||||||
shader_parameter/step_softness = 0.1
|
shader_parameter/step_softness = 0.1
|
||||||
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
|
||||||
|
|||||||
@@ -5,6 +5,11 @@ extends Node3D
|
|||||||
@export var color_pomeriggio: Color = Color(1.0, 0.6, 0.2, 1.0)
|
@export var color_pomeriggio: Color = Color(1.0, 0.6, 0.2, 1.0)
|
||||||
@export var color_notte: Color = Color(0.1, 0.1, 0.3, 1.0)
|
@export var color_notte: Color = Color(0.1, 0.1, 0.3, 1.0)
|
||||||
|
|
||||||
|
@export_group("Esposizione Generale")
|
||||||
|
@export var esposizione_mattina: float = 1.0
|
||||||
|
@export var esposizione_pomeriggio: float = 0.95
|
||||||
|
@export var esposizione_notte: float = 0.4
|
||||||
|
|
||||||
@export_group("Colori Cielo - Alto (Top)")
|
@export_group("Colori Cielo - Alto (Top)")
|
||||||
@export var sky_top_mattina: Color = Color(0.35, 0.65, 0.9, 1.0)
|
@export var sky_top_mattina: Color = Color(0.35, 0.65, 0.9, 1.0)
|
||||||
@export var sky_top_pomeriggio: Color = Color(0.7, 0.45, 0.2, 1.0)
|
@export var sky_top_pomeriggio: Color = Color(0.7, 0.45, 0.2, 1.0)
|
||||||
@@ -15,6 +20,39 @@ extends Node3D
|
|||||||
@export var sky_horizon_pomeriggio: Color = Color(0.95, 0.65, 0.35, 1.0)
|
@export var sky_horizon_pomeriggio: Color = Color(0.95, 0.65, 0.35, 1.0)
|
||||||
@export var sky_horizon_notte: Color = Color(0.15, 0.1, 0.25, 1.0)
|
@export var sky_horizon_notte: Color = Color(0.15, 0.1, 0.25, 1.0)
|
||||||
|
|
||||||
|
# --- Colori e Intensità Gradiente Shader ---
|
||||||
|
@export_group("Gradiente Globale Shader")
|
||||||
|
|
||||||
|
@export_subgroup("Colore Top (Alto)")
|
||||||
|
@export var grad_top_mattina: Color = Color(0.8, 0.4, 0.2, 1.0)
|
||||||
|
@export var grad_top_pomeriggio: Color = Color(0.2, 0.3, 0.5, 1.0)
|
||||||
|
@export var grad_top_notte: Color = Color(0.05, 0.05, 0.1, 1.0)
|
||||||
|
|
||||||
|
@export_subgroup("Colore Bottom (Basso)")
|
||||||
|
@export var grad_bot_mattina: Color = Color(0.5, 0.2, 0.1, 1.0)
|
||||||
|
@export var grad_bot_pomeriggio: Color = Color(0.1, 0.15, 0.25, 1.0)
|
||||||
|
@export var grad_bot_notte: Color = Color(0.01, 0.01, 0.05, 1.0)
|
||||||
|
|
||||||
|
@export_subgroup("Intensità Gradiente")
|
||||||
|
@export var intensita_grad_mattina: float = 0.5
|
||||||
|
@export var intensita_grad_pomeriggio: float = 0.3
|
||||||
|
@export var intensita_grad_notte: float = 0.8
|
||||||
|
|
||||||
|
# --- NUOVO: Gestione Nebbia ---
|
||||||
|
@export_group("Nebbia (Fog)")
|
||||||
|
@export var colore_nebbia_mattina: Color = Color(0.75, 0.85, 0.95, 1.0)
|
||||||
|
@export var colore_nebbia_pomeriggio: Color = Color(0.95, 0.65, 0.35, 1.0)
|
||||||
|
@export var colore_nebbia_notte: Color = Color(0.15, 0.1, 0.25, 1.0)
|
||||||
|
@export var densita_nebbia_mattina: float = 0.005
|
||||||
|
@export var densita_nebbia_pomeriggio: float = 0.002
|
||||||
|
@export var densita_nebbia_notte: float = 0.015
|
||||||
|
|
||||||
|
# --- NUOVO: Gestione Bloom (Glow) ---
|
||||||
|
@export_group("Bloom (Glow)")
|
||||||
|
@export var bloom_mattina: float = 1.2
|
||||||
|
@export var bloom_pomeriggio: float = 0.8
|
||||||
|
@export var bloom_notte: float = 2.0
|
||||||
|
|
||||||
@export_group("Ciclo Temporale")
|
@export_group("Ciclo Temporale")
|
||||||
@export_range(1.0, 3.0) var tempo_giorno: float = 1.0
|
@export_range(1.0, 3.0) var tempo_giorno: float = 1.0
|
||||||
@export var durata_transizione: float = 3.0
|
@export var durata_transizione: float = 3.0
|
||||||
@@ -168,7 +206,6 @@ func _on_giornata_selezionata(index: int) -> void:
|
|||||||
trigger_morning()
|
trigger_morning()
|
||||||
|
|
||||||
func _on_pioggia_toggled(toggled_on: bool) -> void:
|
func _on_pioggia_toggled(toggled_on: bool) -> void:
|
||||||
# Blocchiamo la pioggia se sta già nevicando
|
|
||||||
if is_actively_snowing and toggled_on:
|
if is_actively_snowing and toggled_on:
|
||||||
if bottone_pioggia:
|
if bottone_pioggia:
|
||||||
bottone_pioggia.set_pressed_no_signal(false)
|
bottone_pioggia.set_pressed_no_signal(false)
|
||||||
@@ -196,14 +233,18 @@ func _process(delta: float) -> void:
|
|||||||
var base_tint: Color
|
var base_tint: Color
|
||||||
var base_sky_top: Color
|
var base_sky_top: Color
|
||||||
var base_sky_horizon: Color
|
var base_sky_horizon: Color
|
||||||
|
var base_fog_color: Color
|
||||||
|
var base_fog_density: float
|
||||||
|
var base_bloom: float
|
||||||
|
var base_esposizione: float # <--- NUOVA VARIABILE
|
||||||
|
var base_grad_top: Color
|
||||||
|
var base_grad_bot: Color
|
||||||
|
var base_grad_intensity: float
|
||||||
|
|
||||||
# Usiamo questa variabile per animare le nuvole sia se piove sia se nevica
|
|
||||||
var tempesta_attiva = is_raining or is_actively_snowing
|
var tempesta_attiva = is_raining or is_actively_snowing
|
||||||
|
|
||||||
if tempesta_attiva:
|
if tempesta_attiva:
|
||||||
intensita_pioggia = move_toward(intensita_pioggia, 1.0, delta * 0.5)
|
intensita_pioggia = move_toward(intensita_pioggia, 1.0, delta * 0.5)
|
||||||
|
|
||||||
# I fulmini partono SOLO se sta piovendo
|
|
||||||
if is_raining:
|
if is_raining:
|
||||||
timer_prossimo_fulmine -= delta
|
timer_prossimo_fulmine -= delta
|
||||||
if timer_prossimo_fulmine <= 0.0:
|
if timer_prossimo_fulmine <= 0.0:
|
||||||
@@ -223,17 +264,50 @@ func _process(delta: float) -> void:
|
|||||||
base_tint = color_mattina.lerp(color_pomeriggio, t)
|
base_tint = color_mattina.lerp(color_pomeriggio, t)
|
||||||
base_sky_top = sky_top_mattina.lerp(sky_top_pomeriggio, t)
|
base_sky_top = sky_top_mattina.lerp(sky_top_pomeriggio, t)
|
||||||
base_sky_horizon = sky_horizon_mattina.lerp(sky_horizon_pomeriggio, t)
|
base_sky_horizon = sky_horizon_mattina.lerp(sky_horizon_pomeriggio, t)
|
||||||
|
base_fog_color = colore_nebbia_mattina.lerp(colore_nebbia_pomeriggio, t)
|
||||||
|
base_fog_density = lerp(densita_nebbia_mattina, densita_nebbia_pomeriggio, t)
|
||||||
|
base_bloom = lerp(bloom_mattina, bloom_pomeriggio, t)
|
||||||
|
base_esposizione = lerp(esposizione_mattina, esposizione_pomeriggio, t) # <--- INTERPOLAZIONE MATTINA/POM
|
||||||
|
base_grad_top = grad_top_mattina.lerp(grad_top_pomeriggio, t)
|
||||||
|
base_grad_bot = grad_bot_mattina.lerp(grad_bot_pomeriggio, t)
|
||||||
|
base_grad_intensity = lerp(intensita_grad_mattina, intensita_grad_pomeriggio, t)
|
||||||
else:
|
else:
|
||||||
var t = tempo_giorno - 2.0
|
var t = tempo_giorno - 2.0
|
||||||
base_tint = color_pomeriggio.lerp(color_notte, t)
|
base_tint = color_pomeriggio.lerp(color_notte, t)
|
||||||
base_sky_top = sky_top_pomeriggio.lerp(sky_top_notte, t)
|
base_sky_top = sky_top_pomeriggio.lerp(sky_top_notte, t)
|
||||||
base_sky_horizon = sky_horizon_pomeriggio.lerp(sky_horizon_notte, t)
|
base_sky_horizon = sky_horizon_pomeriggio.lerp(sky_horizon_notte, t)
|
||||||
|
base_fog_color = colore_nebbia_pomeriggio.lerp(colore_nebbia_notte, t)
|
||||||
|
base_fog_density = lerp(densita_nebbia_pomeriggio, densita_nebbia_notte, t)
|
||||||
|
base_bloom = lerp(bloom_pomeriggio, bloom_notte, t)
|
||||||
|
base_esposizione = lerp(esposizione_pomeriggio, esposizione_notte, t) # <--- INTERPOLAZIONE POM/NOTTE
|
||||||
|
base_grad_top = grad_top_pomeriggio.lerp(grad_top_notte, t)
|
||||||
|
base_grad_bot = grad_bot_pomeriggio.lerp(grad_bot_notte, t)
|
||||||
|
base_grad_intensity = lerp(intensita_grad_pomeriggio, intensita_grad_notte, t)
|
||||||
|
|
||||||
var final_tint = base_tint.lerp(base_tint * colore_mood_pioggia, intensita_pioggia)
|
var final_tint = base_tint.lerp(base_tint * colore_mood_pioggia, intensita_pioggia)
|
||||||
var final_sky_top = base_sky_top.lerp(base_sky_top * colore_mood_pioggia, intensita_pioggia)
|
var final_sky_top = base_sky_top.lerp(base_sky_top * colore_mood_pioggia, intensita_pioggia)
|
||||||
var final_sky_horizon = base_sky_horizon.lerp(base_sky_horizon * colore_mood_pioggia, intensita_pioggia)
|
var final_sky_horizon = base_sky_horizon.lerp(base_sky_horizon * colore_mood_pioggia, intensita_pioggia)
|
||||||
|
var final_fog_color = base_fog_color.lerp(base_fog_color * colore_mood_pioggia, intensita_pioggia)
|
||||||
|
var final_fog_density = lerp(base_fog_density, base_fog_density * 4.0, intensita_pioggia)
|
||||||
|
|
||||||
|
var final_grad_top = base_grad_top.lerp(base_grad_top * colore_mood_pioggia, intensita_pioggia)
|
||||||
|
var final_grad_bot = base_grad_bot.lerp(base_grad_bot * colore_mood_pioggia, intensita_pioggia)
|
||||||
|
|
||||||
|
RenderingServer.global_shader_parameter_set("global_gradient_color_top", final_grad_top)
|
||||||
|
RenderingServer.global_shader_parameter_set("global_gradient_color_bot", final_grad_bot)
|
||||||
|
RenderingServer.global_shader_parameter_set("global_gradient_intensity", base_grad_intensity)
|
||||||
|
|
||||||
var night_val = clamp(tempo_giorno - 2.0, 0.0, 1.0)
|
var night_val = clamp(tempo_giorno - 2.0, 0.0, 1.0)
|
||||||
|
|
||||||
|
# Compensazione esposizione neve
|
||||||
|
var attenuazione_luce_neve = lerp(1.0, 0.55, actual_snow_amount * (1.0 - night_val))
|
||||||
|
var attenuazione_bloom_neve = lerp(1.0, 0.5, actual_snow_amount)
|
||||||
|
|
||||||
|
var final_bloom = lerp(base_bloom, base_bloom * 0.5, intensita_pioggia) * attenuazione_bloom_neve
|
||||||
|
|
||||||
|
# Calcoliamo l'esposizione finale applicando lo smorzamento della neve direttamente all'esposizione della camera
|
||||||
|
var final_esposizione = base_esposizione * attenuazione_luce_neve
|
||||||
|
|
||||||
var colore_riflesso = Color(0.4, 0.5, 0.6, 1.0)
|
var colore_riflesso = Color(0.4, 0.5, 0.6, 1.0)
|
||||||
var colore_gocce = final_sky_horizon.lerp(colore_riflesso, 0.15)
|
var colore_gocce = final_sky_horizon.lerp(colore_riflesso, 0.15)
|
||||||
colore_gocce = colore_gocce.lerp(colore_gocce * 0.4, night_val)
|
colore_gocce = colore_gocce.lerp(colore_gocce * 0.4, night_val)
|
||||||
@@ -244,11 +318,24 @@ func _process(delta: float) -> void:
|
|||||||
if sole:
|
if sole:
|
||||||
sole.light_color = final_tint
|
sole.light_color = final_tint
|
||||||
var target_energy = lerp(1.0, energia_luce_notte, night_val)
|
var target_energy = lerp(1.0, energia_luce_notte, night_val)
|
||||||
|
# La luce del sole scala normalmente in base al meteo/notte (l'esposizione globale fa il resto del lavoro)
|
||||||
sole.light_energy = lerp(target_energy, target_energy * 0.4, intensita_pioggia)
|
sole.light_energy = lerp(target_energy, target_energy * 0.4, intensita_pioggia)
|
||||||
|
|
||||||
if ambiente and ambiente.environment:
|
if ambiente and ambiente.environment:
|
||||||
ambiente.environment.ambient_light_color = final_tint
|
ambiente.environment.ambient_light_color = final_tint
|
||||||
ambiente.environment.fog_light_color = final_sky_horizon
|
|
||||||
|
# Applicazione della nebbia
|
||||||
|
ambiente.environment.fog_enabled = true
|
||||||
|
ambiente.environment.fog_light_color = final_fog_color
|
||||||
|
ambiente.environment.fog_density = final_fog_density
|
||||||
|
|
||||||
|
# Applicazione del Bloom
|
||||||
|
ambiente.environment.glow_enabled = true
|
||||||
|
ambiente.environment.glow_intensity = final_bloom
|
||||||
|
|
||||||
|
# --- NUOVO: Assegnazione dell'Esposizione (Tonemap) ---
|
||||||
|
# Assicurati che il Tonemap Mode nell'Environment sia impostato su ACES o Filmic per un risultato migliore!
|
||||||
|
ambiente.environment.tonemap_exposure = final_esposizione
|
||||||
|
|
||||||
var sky_mat = ambiente.environment.sky.sky_material as ShaderMaterial
|
var sky_mat = ambiente.environment.sky.sky_material as ShaderMaterial
|
||||||
if sky_mat:
|
if sky_mat:
|
||||||
@@ -264,22 +351,13 @@ func _process(delta: float) -> void:
|
|||||||
var e_notte = tempo_giorno >= 2.5
|
var e_notte = tempo_giorno >= 2.5
|
||||||
|
|
||||||
if nodo_polvere:
|
if nodo_polvere:
|
||||||
if not tempesta_attiva and not e_notte:
|
nodo_polvere.visible = (not tempesta_attiva and not e_notte)
|
||||||
nodo_polvere.visible = true
|
|
||||||
else:
|
|
||||||
nodo_polvere.visible = false
|
|
||||||
|
|
||||||
if particelle_lucciole:
|
if particelle_lucciole:
|
||||||
if not tempesta_attiva and e_notte:
|
particelle_lucciole.emitting = (not tempesta_attiva and e_notte)
|
||||||
particelle_lucciole.emitting = true
|
|
||||||
else:
|
|
||||||
particelle_lucciole.emitting = false
|
|
||||||
|
|
||||||
if particelle_vento:
|
if particelle_vento:
|
||||||
if not tempesta_attiva and not e_notte:
|
particelle_vento.emitting = (not tempesta_attiva and not e_notte)
|
||||||
particelle_vento.emitting = true
|
|
||||||
else:
|
|
||||||
particelle_vento.emitting = false
|
|
||||||
|
|
||||||
func _genera_evento_meteo_casuale() -> void:
|
func _genera_evento_meteo_casuale() -> void:
|
||||||
sto_cambiando_in_cinematic = true
|
sto_cambiando_in_cinematic = true
|
||||||
@@ -293,7 +371,6 @@ func _genera_evento_meteo_casuale() -> void:
|
|||||||
_on_giornata_selezionata(nuovo_orario)
|
_on_giornata_selezionata(nuovo_orario)
|
||||||
|
|
||||||
elif scelta == 1:
|
elif scelta == 1:
|
||||||
# Blocca il trigger della pioggia in cinematic mode se nevica
|
|
||||||
if not is_actively_snowing:
|
if not is_actively_snowing:
|
||||||
var piove = randf() > 0.5
|
var piove = randf() > 0.5
|
||||||
if bottone_pioggia:
|
if bottone_pioggia:
|
||||||
@@ -301,7 +378,6 @@ func _genera_evento_meteo_casuale() -> void:
|
|||||||
_on_pioggia_toggled(piove)
|
_on_pioggia_toggled(piove)
|
||||||
|
|
||||||
elif scelta == 2:
|
elif scelta == 2:
|
||||||
# Blocca il trigger di tempesta/fulmini se nevica
|
|
||||||
if not is_actively_snowing:
|
if not is_actively_snowing:
|
||||||
if not is_raining:
|
if not is_raining:
|
||||||
if bottone_pioggia:
|
if bottone_pioggia:
|
||||||
@@ -375,17 +451,12 @@ func spawn_single_godray() -> void:
|
|||||||
ray.rotation_degrees = godray_rotation_degrees
|
ray.rotation_degrees = godray_rotation_degrees
|
||||||
ray.scale = godray_scale
|
ray.scale = godray_scale
|
||||||
|
|
||||||
# ==========================================
|
|
||||||
# --- LOGICA NEVE E NEVICATA ---
|
|
||||||
# ==========================================
|
|
||||||
|
|
||||||
func _on_snow_button_pressed():
|
func _on_snow_button_pressed():
|
||||||
is_snow_accumulated = !is_snow_accumulated
|
is_snow_accumulated = !is_snow_accumulated
|
||||||
|
|
||||||
if bottone_nevicata:
|
if bottone_nevicata:
|
||||||
bottone_nevicata.disabled = !is_snow_accumulated
|
bottone_nevicata.disabled = !is_snow_accumulated
|
||||||
|
|
||||||
# Attiva in automatico la nevicata quando nevica, la spegne quando si scioglie
|
|
||||||
if is_snow_accumulated and not is_actively_snowing:
|
if is_snow_accumulated and not is_actively_snowing:
|
||||||
_on_nevicata_button_pressed()
|
_on_nevicata_button_pressed()
|
||||||
elif not is_snow_accumulated and is_actively_snowing:
|
elif not is_snow_accumulated and is_actively_snowing:
|
||||||
@@ -399,14 +470,12 @@ func _on_snow_button_pressed():
|
|||||||
snow_tween = create_tween()
|
snow_tween = create_tween()
|
||||||
snow_tween.tween_method(set_snow_amount, actual_snow_amount, target_snow, tempo_transizione_neve)
|
snow_tween.tween_method(set_snow_amount, actual_snow_amount, target_snow, tempo_transizione_neve)
|
||||||
|
|
||||||
|
|
||||||
func _on_nevicata_button_pressed():
|
func _on_nevicata_button_pressed():
|
||||||
if not is_snow_accumulated:
|
if not is_snow_accumulated:
|
||||||
return
|
return
|
||||||
|
|
||||||
is_actively_snowing = !is_actively_snowing
|
is_actively_snowing = !is_actively_snowing
|
||||||
|
|
||||||
# Disabilita il pulsante della pioggia. Se pioveva già, spegne la pioggia.
|
|
||||||
if bottone_pioggia:
|
if bottone_pioggia:
|
||||||
bottone_pioggia.disabled = is_actively_snowing
|
bottone_pioggia.disabled = is_actively_snowing
|
||||||
if is_actively_snowing and is_raining:
|
if is_actively_snowing and is_raining:
|
||||||
@@ -417,7 +486,7 @@ func _on_nevicata_button_pressed():
|
|||||||
particelle_neve.emitting = is_actively_snowing
|
particelle_neve.emitting = is_actively_snowing
|
||||||
|
|
||||||
if overlay_nebbia_schermo and overlay_nebbia_schermo.material:
|
if overlay_nebbia_schermo and overlay_nebbia_schermo.material:
|
||||||
var target_opacity: float = 1.0 if is_actively_snowing else 0.135
|
var target_opacity: float = 0.5 if is_actively_snowing else 0.1
|
||||||
var target_radius: float = 0.350 if is_actively_snowing else 0.465
|
var target_radius: float = 0.350 if is_actively_snowing else 0.465
|
||||||
|
|
||||||
if cold_tween and cold_tween.is_valid():
|
if cold_tween and cold_tween.is_valid():
|
||||||
|
|||||||
@@ -9,40 +9,56 @@ uniform vec4 albedo_color : source_color = vec4(1.0);
|
|||||||
uniform sampler2D albedo_texture : source_color, filter_nearest;
|
uniform sampler2D albedo_texture : source_color, filter_nearest;
|
||||||
uniform bool use_texture = true;
|
uniform bool use_texture = true;
|
||||||
uniform vec2 uv_scale = vec2(1.0, 1.0);
|
uniform vec2 uv_scale = vec2(1.0, 1.0);
|
||||||
// NUOVO PARAMETRO: Slider per scorrere la palette in verticale
|
|
||||||
uniform float palette_shift_y : hint_range(0.0, 1.0) = 0.0;
|
uniform float palette_shift_y : hint_range(0.0, 1.0) = 0.0;
|
||||||
|
|
||||||
|
// --- PARAMETRI GRADIENTE GLOBALE ---
|
||||||
|
group_uniforms Height_Gradient;
|
||||||
|
global uniform vec4 global_gradient_color_top;
|
||||||
|
global uniform vec4 global_gradient_color_bot;
|
||||||
|
global uniform float global_gradient_intensity;
|
||||||
|
|
||||||
|
uniform float gradient_start_y = 0.0; // Altezza MONDO dove il gradiente è 100% Bottom
|
||||||
|
uniform float gradient_end_y = 10.0; // Altezza MONDO dove il gradiente è 100% Top
|
||||||
|
|
||||||
group_uniforms Toon_Lighting;
|
group_uniforms Toon_Lighting;
|
||||||
uniform float light_steps : hint_range(1.0, 10.0, 1.0) = 3.0;
|
uniform float light_steps : hint_range(1.0, 10.0, 1.0) = 3.0;
|
||||||
uniform float step_softness : hint_range(0.01, 1.0) = 0.1;
|
uniform float step_softness : hint_range(0.01, 1.0) = 0.1;
|
||||||
uniform vec4 shadow_color : source_color = vec4(0.4, 0.4, 0.6, 1.0);
|
uniform vec4 shadow_color : source_color = vec4(0.4, 0.4, 0.6, 1.0);
|
||||||
uniform float shadow_offset : hint_range(-1.0, 1.0) = 0.0;
|
uniform float shadow_offset : hint_range(-1.0, 1.0) = 0.0;
|
||||||
|
|
||||||
// NUOVO PARAMETRO IMPORTATO: Intensità delle ombre proiettate su questo materiale
|
|
||||||
uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6;
|
uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6;
|
||||||
|
|
||||||
group_uniforms Emission_Settings;
|
group_uniforms Emission_Settings;
|
||||||
uniform vec4 emission_color : source_color = vec4(0.0, 0.0, 0.0, 1.0);
|
uniform vec4 emission_color : source_color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||||
uniform float emission_energy : hint_range(0.0, 16.0) = 0.0;
|
uniform float emission_energy : hint_range(0.0, 16.0) = 0.0;
|
||||||
|
|
||||||
|
varying float world_y;
|
||||||
|
|
||||||
|
void vertex() {
|
||||||
|
world_y = (MODEL_MATRIX * vec4(VERTEX, 1.0)).y;
|
||||||
|
}
|
||||||
|
|
||||||
void fragment() {
|
void fragment() {
|
||||||
// 1. Albedo (Colore base dell'oggetto)
|
|
||||||
// APPLICATO LO SHIFT SULL'ASSE Y SULLE UV
|
|
||||||
vec2 final_uv = (UV * uv_scale) + vec2(0.0, palette_shift_y);
|
vec2 final_uv = (UV * uv_scale) + vec2(0.0, palette_shift_y);
|
||||||
vec4 tex = texture(albedo_texture, final_uv);
|
vec4 tex = texture(albedo_texture, final_uv);
|
||||||
|
|
||||||
vec3 base_color = albedo_color.rgb;
|
vec3 base_color = albedo_color.rgb;
|
||||||
if (use_texture) base_color *= tex.rgb;
|
if (use_texture) base_color *= tex.rgb;
|
||||||
|
|
||||||
// Passiamo il colore crudo a Godot.
|
// --- APPLICAZIONE GRADIENTE B我們 ---
|
||||||
// Godot si occuperà di moltiplicarlo per la luce alla fine.
|
// Calcoliamo il mix tra l'altezza minima e massima (0.0 = Bottom, 1.0 = Top)
|
||||||
ALBEDO = base_color;
|
float grad_factor = smoothstep(gradient_start_y, gradient_end_y, world_y);
|
||||||
|
|
||||||
// 2. Emission
|
// Ricaviamo il colore attuale del gradiente per questa specifica altezza
|
||||||
|
vec3 current_gradient_color = mix(global_gradient_color_bot.rgb, global_gradient_color_top.rgb, grad_factor);
|
||||||
|
|
||||||
|
// Miscela il colore base con il gradiente ottenuto, usando l'intensità globale
|
||||||
|
base_color = mix(base_color, current_gradient_color, global_gradient_intensity);
|
||||||
|
|
||||||
|
ALBEDO = base_color;
|
||||||
EMISSION = emission_color.rgb * emission_energy;
|
EMISSION = emission_color.rgb * emission_energy;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- NUOVA LOGICA LUCE INTEGRATA ---
|
|
||||||
void light() {
|
void light() {
|
||||||
float shadow_factor = mix(1.0 - cast_shadow_strength, 1.0, ATTENUATION);
|
float shadow_factor = mix(1.0 - cast_shadow_strength, 1.0, ATTENUATION);
|
||||||
float n_dot_l = dot(NORMAL, LIGHT);
|
float n_dot_l = dot(NORMAL, LIGHT);
|
||||||
@@ -60,7 +76,6 @@ void light() {
|
|||||||
|
|
||||||
vec3 final_toon_light = mix(shaded_part, light_part, clamp(stepped_intensity, 0.0, 1.0));
|
vec3 final_toon_light = mix(shaded_part, light_part, clamp(stepped_intensity, 0.0, 1.0));
|
||||||
|
|
||||||
// Porchiddio Michele
|
|
||||||
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
|
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
|
||||||
|
|
||||||
DIFFUSE_LIGHT += (final_toon_light * LIGHT_COLOR) * cutoff_mask;
|
DIFFUSE_LIGHT += (final_toon_light * LIGHT_COLOR) * cutoff_mask;
|
||||||
|
|||||||
@@ -58,3 +58,15 @@ global_snow_amount={
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"value": 0.0
|
"value": 0.0
|
||||||
}
|
}
|
||||||
|
global_gradient_color_top={
|
||||||
|
"type": "color",
|
||||||
|
"value": Color(0, 0, 0, 1)
|
||||||
|
}
|
||||||
|
global_gradient_color_bot={
|
||||||
|
"type": "color",
|
||||||
|
"value": Color(0, 0, 0, 1)
|
||||||
|
}
|
||||||
|
global_gradient_intensity={
|
||||||
|
"type": "float",
|
||||||
|
"value": 0.0
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user