Compare commits

...

10 Commits

Author SHA1 Message Date
Matteo Sonaglioni
89a08abfb9 Revamp Chunk Rotaie - test risaie 2026-03-16 19:30:32 +01:00
Matteo Sonaglioni
461a08aa6d add fake shadow 2026-03-16 00:47:06 +01:00
Matteo Sonaglioni
ccdfba2878 Add Global Gradient on shader - Revamp lighting 2026-03-15 18:34:06 +01:00
Matteo Sonaglioni
89a3bd1872 revamp texture - test new roof 2026-03-15 14:50:32 +01:00
Matteo Sonaglioni
a72211db45 fix snow stuff 2026-03-13 20:56:43 +01:00
Matteo Sonaglioni
44252ec5e6 add snow 2026-03-13 18:35:50 +01:00
Matteo Sonaglioni
6e11a95a3e add wind + dust 2026-03-13 16:42:54 +01:00
Matteo Sonaglioni
6801df2103 add blur - fog - dust 2026-03-13 12:59:23 +01:00
Matteo Sonaglioni
83dc8e997c blur camera 2026-03-13 01:36:48 +01:00
Matteo Sonaglioni
a905a410aa full hd version 2026-03-13 01:02:50 +01:00
99 changed files with 3938 additions and 656 deletions

5
Assets/Meshes/Bush.tres Normal file
View File

@@ -0,0 +1,5 @@
[gd_resource type="SphereMesh" format=3 uid="uid://d008b0x0810qh"]
[resource]
radial_segments = 10
rings = 10

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bfws5cqrfe4vl"
path="res://.godot/imported/Chunck_M_N-O-E-S1.fbx-07133731ad9d9b6f3db2a7c2fb9dc170.scn"
[deps]
source_file="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O-E-S1.fbx"
dest_files=["res://.godot/imported/Chunck_M_N-O-E-S1.fbx-07133731ad9d9b6f3db2a7c2fb9dc170.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://d0b564s37jjbf"
path="res://.godot/imported/Chunck_M_N-O1.fbx-3f04692ae1db9841203f0626918cb468.scn"
[deps]
source_file="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O1.fbx"
dest_files=["res://.godot/imported/Chunck_M_N-O1.fbx-3f04692ae1db9841203f0626918cb468.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dg3lahxw8ytd4"
path="res://.godot/imported/Chunck_M_N-O_E1.fbx-e18c23de6cff89f70dd3919434a1efed.scn"
[deps]
source_file="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O_E1.fbx"
dest_files=["res://.godot/imported/Chunck_M_N-O_E1.fbx-e18c23de6cff89f70dd3919434a1efed.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bdhplbjwhh2vk"
path="res://.godot/imported/Chunck_M_N1.fbx-70c512b463e11454f2ac4d6c5bbfd835.scn"
[deps]
source_file="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N1.fbx"
dest_files=["res://.godot/imported/Chunck_M_N1.fbx-70c512b463e11454f2ac4d6c5bbfd835.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bsyih4obfvlvd"
path="res://.godot/imported/Chunk_Rettilineo_F.fbx-05f2acd5f0061f17b8dac577679432c3.scn"
[deps]
source_file="res://Assets/Meshes/Chunk/Rotaie/Chunk_Rettilineo_F.fbx"
dest_files=["res://.godot/imported/Chunk_Rettilineo_F.fbx-05f2acd5f0061f17b8dac577679432c3.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

Binary file not shown.

View File

@@ -0,0 +1,44 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bihrb0alp60a4"
path="res://.godot/imported/HouseTest_4.fbx-c931264b038a0bd591ce003be8145292.scn"
[deps]
source_file="res://Assets/Meshes/House/HouseTest_4.fbx"
dest_files=["res://.godot/imported/HouseTest_4.fbx-c931264b038a0bd591ce003be8145292.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=true
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
fbx/importer=0
fbx/allow_geometry_helper_nodes=false
fbx/embedded_image_handling=1
fbx/naming_version=2

15
Assets/Meshes/Wind.tres Normal file
View File

@@ -0,0 +1,15 @@
[gd_resource type="TubeTrailMesh" format=3 uid="uid://2wmnftxwg8wt"]
[ext_resource type="Material" uid="uid://c2rg73saqofnw" path="res://Materials/Wind.tres" id="1_a26dm"]
[sub_resource type="Curve" id="Curve_1jvvv"]
_data = [Vector2(0, 0.50861245), 0.0, 0.0, 0, 0, Vector2(0.5024876, 1), 0.0, 0.0, 0, 0, Vector2(0.98507464, 0.4837321), 0.0, 0.0, 0, 0]
point_count = 3
[resource]
material = ExtResource("1_a26dm")
custom_aabb = AABB(20, 20, 20, 0, 0, 0)
radius = 0.06
radial_steps = 16
section_length = 2.0
curve = SubResource("Curve_1jvvv")

View File

@@ -0,0 +1,120 @@
# Blender 4.5.3 LTS
# www.blender.org
o Plane.021
v -5.000001 15.000000 10.000000
v -5.000000 15.000000 -10.000000
v -5.000000 -5.000000 10.000000
v -4.999999 -5.000000 -10.000000
v 9.999999 0.000000 10.000000
v 10.000001 0.000000 -10.000000
v -10.000000 0.000000 10.000000
v -9.999999 0.000000 -10.000000
v 9.999999 1.000000 10.000000
v 10.000001 1.000000 -10.000000
v -10.000000 1.000000 10.000000
v -9.999999 1.000000 -10.000000
v 9.999999 2.000000 10.000000
v 10.000001 2.000000 -10.000000
v -10.000000 2.000000 10.000000
v -9.999999 2.000000 -10.000000
v 9.999999 3.000000 10.000000
v 10.000001 3.000000 -10.000000
v -10.000000 3.000000 10.000000
v -9.999999 3.000000 -10.000000
v 9.999999 4.000000 10.000000
v 10.000001 4.000000 -10.000000
v -10.000000 4.000000 10.000000
v -9.999999 4.000000 -10.000000
v 9.999999 5.000000 10.000000
v 10.000001 5.000000 -10.000000
v -10.000001 5.000000 10.000000
v -9.999999 5.000000 -10.000000
v 9.999999 6.000000 10.000000
v 10.000001 6.000000 -10.000000
v -10.000000 6.000000 10.000000
v -9.999999 6.000000 -10.000000
v 9.999999 7.000000 10.000000
v 10.000001 7.000000 -10.000000
v -10.000000 7.000000 10.000000
v -9.999999 7.000000 -10.000000
v 9.999999 8.000000 10.000000
v 10.000001 8.000000 -10.000000
v -10.000000 8.000000 10.000000
v -9.999999 8.000000 -10.000000
v 9.999999 9.000000 10.000000
v 10.000001 9.000000 -10.000000
v -10.000000 9.000000 10.000000
v -9.999999 9.000000 -10.000000
v 9.999999 10.000000 10.000000
v 10.000001 10.000000 -10.000000
v -10.000000 10.000000 10.000000
v -9.999999 10.000000 -10.000000
v 4.999999 15.000000 10.000000
v 5.000000 15.000000 -10.000000
v 5.000000 -5.000000 10.000000
v 5.000001 -5.000000 -10.000000
v 3.999999 15.000000 10.000000
v 4.000000 15.000000 -10.000000
v 4.000000 -5.000000 10.000000
v 4.000001 -5.000000 -10.000000
v 2.999999 15.000000 10.000000
v 3.000000 15.000000 -10.000000
v 3.000000 -5.000000 10.000000
v 3.000001 -5.000000 -10.000000
v 1.999999 15.000000 10.000000
v 2.000000 15.000000 -10.000000
v 2.000000 -5.000000 10.000000
v 2.000001 -5.000000 -10.000000
v 0.999999 15.000000 10.000000
v 1.000000 15.000000 -10.000000
v 1.000000 -5.000000 10.000000
v 1.000001 -5.000000 -10.000000
v -0.000001 15.000000 10.000000
v 0.000000 15.000000 -10.000000
v -0.000000 -5.000000 10.000000
v 0.000001 -5.000000 -10.000000
v -1.000001 15.000000 10.000000
v -1.000000 15.000000 -10.000000
v -1.000000 -5.000000 10.000000
v -0.999999 -5.000000 -10.000000
v -2.000001 15.000000 10.000000
v -2.000000 15.000000 -10.000000
v -2.000000 -5.000000 10.000000
v -1.999999 -5.000000 -10.000000
v -3.000001 15.000000 10.000000
v -3.000000 15.000000 -10.000000
v -3.000000 -5.000000 10.000000
v -2.999999 -5.000000 -10.000000
v -4.000001 15.000000 10.000000
v -4.000000 15.000000 -10.000000
v -4.000000 -5.000000 10.000000
v -3.999999 -5.000000 -10.000000
vn -1.0000 -0.0000 -0.0000
vn -0.0000 1.0000 -0.0000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
s 0
f 1/1/1 2/2/1 4/3/1 3/4/1
f 5/1/2 6/2/2 8/3/2 7/4/2
f 9/1/2 10/2/2 12/3/2 11/4/2
f 13/1/2 14/2/2 16/3/2 15/4/2
f 17/1/2 18/2/2 20/3/2 19/4/2
f 21/1/2 22/2/2 24/3/2 23/4/2
f 25/1/2 26/2/2 28/3/2 27/4/2
f 29/1/2 30/2/2 32/3/2 31/4/2
f 33/1/2 34/2/2 36/3/2 35/4/2
f 37/1/2 38/2/2 40/3/2 39/4/2
f 41/1/2 42/2/2 44/3/2 43/4/2
f 45/1/2 46/2/2 48/3/2 47/4/2
f 49/1/1 50/2/1 52/3/1 51/4/1
f 53/1/1 54/2/1 56/3/1 55/4/1
f 57/1/1 58/2/1 60/3/1 59/4/1
f 61/1/1 62/2/1 64/3/1 63/4/1
f 65/1/1 66/2/1 68/3/1 67/4/1
f 69/1/1 70/2/1 72/3/1 71/4/1
f 73/1/1 74/2/1 76/3/1 75/4/1
f 77/1/1 78/2/1 80/3/1 79/4/1
f 81/1/1 82/2/1 84/3/1 83/4/1
f 85/1/1 86/2/1 88/3/1 87/4/1

View File

@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://d3m8muh7jxu7s"
path="res://.godot/imported/gpdrays_planes.obj-65ef5e30785c4d8ac9b800543201b211.mesh"
[deps]
files=["res://.godot/imported/gpdrays_planes.obj-65ef5e30785c4d8ac9b800543201b211.mesh"]
source_file="res://Assets/Meshes/gpdrays_planes.obj"
dest_files=["res://.godot/imported/gpdrays_planes.obj-65ef5e30785c4d8ac9b800543201b211.mesh", "res://.godot/imported/gpdrays_planes.obj-65ef5e30785c4d8ac9b800543201b211.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View File

@@ -3,7 +3,6 @@
[sub_resource type="FastNoiseLite" id="FastNoiseLite_xa3jw"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_xa3jw"]
noise_type = 3 noise_type = 3
seed = 1 seed = 1
frequency = 0.005
metadata/_preview_in_3d_space_ = true metadata/_preview_in_3d_space_ = true
[resource] [resource]

View File

@@ -13,10 +13,10 @@ render_priority = 0
shader = ExtResource("1_340tl") shader = ExtResource("1_340tl")
shader_parameter/fog_noise = SubResource("NoiseTexture2D_8vrnd") shader_parameter/fog_noise = SubResource("NoiseTexture2D_8vrnd")
shader_parameter/use_red_as_alpha = true shader_parameter/use_red_as_alpha = true
shader_parameter/fog_color = Color(0.8, 0.85, 0.9, 0.5) shader_parameter/fog_color = Color(0.8, 0.8509804, 0.9019608, 0.38431373)
shader_parameter/scroll_speed = Vector2(0.01, 0.01) shader_parameter/scroll_speed = Vector2(0.01, 0.01)
shader_parameter/texture_scale = Vector2(1, 1) shader_parameter/texture_scale = Vector2(1, 1)
shader_parameter/edge_softness_y = 0.5 shader_parameter/edge_softness_y = 0.16400000779
shader_parameter/edge_softness_x = 0.5 shader_parameter/edge_softness_x = 0.5
shader_parameter/night_intensity = 0.0 shader_parameter/night_intensity = 0.0
shader_parameter/sun_color = Color(1, 1, 1, 1) shader_parameter/sun_color = Color(1, 1, 1, 1)

View File

@@ -1,15 +1,20 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://buknp8uj4o22p"] [gd_resource type="ShaderMaterial" format=3 uid="uid://buknp8uj4o22p"]
[ext_resource type="Shader" uid="uid://cw7lu2soglhqu" path="res://Shaders/Grain_Test.gdshader" id="1_etun4"] [ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="1_etun4"]
[ext_resource type="Texture2D" uid="uid://dluagib52he0x" path="res://Assets/Textures/grass_thin.png" id="2_j223e"] [ext_resource type="Texture2D" uid="uid://dluagib52he0x" path="res://Assets/Textures/grass_thin.png" id="2_j223e"]
[resource] [resource]
render_priority = 0 render_priority = 0
shader = ExtResource("1_etun4") shader = ExtResource("1_etun4")
shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = true
shader_parameter/base_color = Color(0.6910962, 0.46426672, 0.08072326, 1) shader_parameter/base_color = Color(0.6910962, 0.46426672, 0.08072326, 1)
shader_parameter/alpha_texture = ExtResource("2_j223e") shader_parameter/alpha_texture = ExtResource("2_j223e")
shader_parameter/leaves_scale = 1.0 shader_parameter/leaves_scale = 1.0
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5

24
Materials/Grass2.tres Normal file
View File

@@ -0,0 +1,24 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://cabv225thcqi3"]
[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="1_b31b8"]
[ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="2_b31b8"]
[resource]
render_priority = 0
shader = ExtResource("1_b31b8")
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("2_b31b8")
shader_parameter/leaves_scale = 0.65
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.6000000285
shader_parameter/highlight_intensity = 0.10000000475
shader_parameter/light_steps = 10.0
shader_parameter/random_mix = 0.0150000007125
shader_parameter/cast_shadow_strength = 0.6

24
Materials/Grass3.tres Normal file
View File

@@ -0,0 +1,24 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://bjrb33qwp1p43"]
[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="1_fqby2"]
[ext_resource type="Texture2D" uid="uid://cnlnnkjsnccmx" path="res://Assets/Textures/Leaf_Test2.png" id="2_0epvy"]
[resource]
render_priority = 0
shader = ExtResource("1_fqby2")
shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = false
shader_parameter/base_color = Color(0.103467666, 0.34917185, 0.14285779, 1)
shader_parameter/alpha_texture = ExtResource("2_0epvy")
shader_parameter/leaves_scale = 0.92
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 = 1.5
shader_parameter/shadow_intensity = 0.70000003325
shader_parameter/highlight_intensity = 0.02000000095
shader_parameter/light_steps = 10.0
shader_parameter/random_mix = 0.138000006555
shader_parameter/cast_shadow_strength = 0.6

24
Materials/Grass4.tres Normal file
View File

@@ -0,0 +1,24 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://0x17mj2v807r"]
[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="1_qx1eq"]
[ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="2_wl0p2"]
[resource]
render_priority = 0
shader = ExtResource("1_qx1eq")
shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = false
shader_parameter/base_color = Color(0.14700681, 0.45590013, 0.22758594, 1)
shader_parameter/alpha_texture = ExtResource("2_wl0p2")
shader_parameter/leaves_scale = 0.46
shader_parameter/rotation_degrees = 180.0
shader_parameter/texture_offset = Vector2(0, 0.155)
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
shader_parameter/highlight_intensity = 0.0
shader_parameter/light_steps = 10.0
shader_parameter/random_mix = 0.010000000475
shader_parameter/cast_shadow_strength = 0.6

View File

@@ -1,4 +1,23 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://cit5uciejjoou"] [gd_resource type="ShaderMaterial" format=3 uid="uid://cit5uciejjoou"]
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_8emj4"]
[resource] [resource]
albedo_color = Color(2.9841065e-06, 0.57592344, 0.33145612, 1) render_priority = 0
shader = ExtResource("1_8emj4")
shader_parameter/albedo_color = Color(0.22173214, 0.30581495, 0.10733434, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.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)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0

View File

@@ -1,20 +1,25 @@
[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 = 10.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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 20.000000475
shader_parameter/specular_softness = 0.10000000149012
shader_parameter/specular_intensity_multiplier = 1.0000000475
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0

View File

@@ -11,10 +11,15 @@ shader_parameter/albedo_texture = ExtResource("2_b63ar")
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/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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0.63321626, 0.34243506, 0, 1) shader_parameter/emission_color = Color(0.63321626, 0.34243506, 0, 1)
shader_parameter/emission_energy = 6.000000285 shader_parameter/emission_energy = 6.000000285

View File

@@ -1,20 +1,23 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://b2lg2y1k7grmo"] [gd_resource type="ShaderMaterial" format=3 uid="uid://b2lg2y1k7grmo"]
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_yna88"] [ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_yna88"]
[ext_resource type="Texture2D" uid="uid://cy7kh4dvdd34v" path="res://Assets/Textures/tree_bark.png" id="2_ssxga"]
[resource] [resource]
render_priority = 0 render_priority = 0
shader = ExtResource("1_yna88") shader = ExtResource("1_yna88")
shader_parameter/albedo_color = Color(0.76525277, 0.97499627, 0.42436218, 1) shader_parameter/albedo_color = Color(0.46921068, 0.28503138, 0.05139889, 1)
shader_parameter/albedo_texture = ExtResource("2_ssxga") shader_parameter/use_texture = false
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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0

View File

@@ -0,0 +1,14 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://codq5gx71rj4o"]
[ext_resource type="Shader" uid="uid://svdmjppqell5" path="res://Shaders/PolvereAtmosferica.gdshader" id="1_ppnru"]
[resource]
shader = ExtResource("1_ppnru")
shader_parameter/dust_color = Color(0.9999998, 0.7058353, 0.3872684, 0.6)
shader_parameter/wind_velocity = Vector2(-1, -0.5)
shader_parameter/wind_oscillation = 0.0150000007125
shader_parameter/dust_speed = 0.15000000642648
shader_parameter/size_min = 0.010000000475
shader_parameter/size_max = 0.15000000642648
shader_parameter/dust_density = 0.20000000880148
shader_parameter/solid_core = 0.0

View File

@@ -6,7 +6,7 @@ alpha_scissor_threshold = 0.0
alpha_antialiasing_mode = 0 alpha_antialiasing_mode = 0
shading_mode = 0 shading_mode = 0
disable_ambient_light = true 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 billboard_mode = 3
particles_anim_h_frames = 1 particles_anim_h_frames = 1
particles_anim_v_frames = 1 particles_anim_v_frames = 1

View File

@@ -0,0 +1,23 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://768v64kvq6ho"]
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_maih5"]
[resource]
render_priority = 0
shader = ExtResource("1_maih5")
shader_parameter/albedo_color = Color(0.42462158, 0.28316185, 0.14912051, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.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)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0

21
Materials/Snow.tres Normal file
View File

@@ -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")

View File

@@ -1,15 +1,16 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://wkegx4a21x7u"] [gd_resource type="ShaderMaterial" format=3 uid="uid://wkegx4a21x7u"]
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_k6owx"] [ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="1_k6owx"]
[ext_resource type="Texture2D" uid="uid://cy7kh4dvdd34v" path="res://Assets/Textures/tree_bark.png" id="2_dqabp"]
[resource] [resource]
render_priority = 0 render_priority = 0
shader = ExtResource("1_k6owx") shader = ExtResource("1_k6owx")
shader_parameter/albedo_color = Color(0.6105919, 0.5885208, 0.012471255, 1) shader_parameter/albedo_color = Color(0.41427386, 0.22169134, 0.039388184, 1)
shader_parameter/albedo_texture = ExtResource("2_dqabp")
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/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)

View File

@@ -1,7 +1,4 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://d1xcve6aswe3d"] [gd_resource type="StandardMaterial3D" format=3 uid="uid://d1xcve6aswe3d"]
[ext_resource type="Texture2D" uid="uid://dqo0nreyp8ylw" path="res://Assets/Textures/imgonline-com-ua-TextureSeamless-EWbtVlmKsqR.png" id="1_t7dy0"]
[resource] [resource]
albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1) albedo_color = Color(0.4964038, 0.3703512, 0.09901195, 1)
albedo_texture = ExtResource("1_t7dy0")

View File

@@ -8,10 +8,16 @@ shader = ExtResource("1_i3cgb")
shader_parameter/albedo_color = Color(0.16250518, 0.23871198, 0.21290374, 1) shader_parameter/albedo_color = Color(0.16250518, 0.23871198, 0.21290374, 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/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0

View File

@@ -8,10 +8,16 @@ shader = ExtResource("1_qkrhb")
shader_parameter/albedo_color = Color(0.2520276, 0.25202766, 0.25202763, 1) shader_parameter/albedo_color = Color(0.2520276, 0.25202766, 0.25202763, 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/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0

View File

@@ -8,10 +8,16 @@ shader = ExtResource("1_gtyqp")
shader_parameter/albedo_color = Color(0.40934297, 0.38911393, 0.34586716, 1) shader_parameter/albedo_color = Color(0.40934297, 0.38911393, 0.34586716, 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/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 5.0
shader_parameter/light_steps = 5.0 shader_parameter/light_steps = 5.0
shader_parameter/step_softness = 0.00999999977648 shader_parameter/step_softness = 0.00999999977648
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1) shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0

10
Materials/Wind.tres Normal file
View File

@@ -0,0 +1,10 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://c2rg73saqofnw"]
[ext_resource type="Shader" uid="uid://ch7g8q4utqci8" path="res://Scenes/Wind.gdshader" id="1_b53de"]
[resource]
render_priority = 0
shader = ExtResource("1_b53de")
shader_parameter/time_scale = 3.065
shader_parameter/wave_amplitude = 0.3
shader_parameter/wave_frequency = 0.25

142
Materials/grass.gdshader Normal file
View File

@@ -0,0 +1,142 @@
shader_type spatial;
render_mode specular_disabled, cull_disabled, ambient_light_disabled;
// --- 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;
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;
// --- PARAMETRI CHIAZZE ERBA (NOISE PATCHES) ---
// Inserisci qui una texture Noise (es. FastNoiseLite in Godot)
uniform sampler2D grass_noise : hint_default_white, filter_linear_mipmap;
uniform float noise_scale = 0.05; // Più è basso, più le chiazze sono grandi
uniform vec4 patch_color : source_color = vec4(0.1, 0.35, 0.2, 1.0); // Colore scuro della chiazza
uniform float patch_threshold : hint_range(0.0, 1.0) = 0.5; // Regola quanto sono estese le chiazze
uniform float patch_smoothness : hint_range(0.01, 1.0) = 0.2; // Morbidezza sfumatura ai bordi
uniform float patch_intensity : hint_range(0.0, 1.0) = 0.85; // Quanto è forte il colore della chiazza
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;
uniform float height_max = 5.0;
uniform float shadow_intensity : hint_range(0.0, 1.0) = 0.5;
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;
uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6;
varying vec3 v_final_color;
varying float v_shade_factor;
float hash(vec3 p) {
p = fract(p * 0.1031);
p += dot(p, p.yzx + 33.33);
return fract((p.x + p.y) * p.z);
}
void vertex() {
vec3 instance_pos = MODEL_MATRIX[3].xyz;
// --- LOGICA VENTO ---
float total_angle = radians(rotation_degrees);
if (wind_enabled) {
float time = TIME * wind_speed;
vec2 noise_uv = (instance_pos.xz * wind_scale) + (time * wind_direction.xz * 0.5);
float noise_val = textureLod(wind_noise, noise_uv, 2.0).r;
float sway = sin(time + (noise_val * 10.0));
total_angle += (sway * wind_strength);
}
// --- CALCOLO COLORE BASE ---
float h_factor = clamp((instance_pos.y - height_min) / (height_max - height_min), 0.0, 1.0);
float leaf_rand = hash(instance_pos);
float combined_factor = mix(h_factor, leaf_rand, random_mix);
combined_factor = ceil(combined_factor * light_steps) / light_steps;
v_shade_factor = combined_factor;
vec3 dark_color = base_color.rgb * (1.0 - shadow_intensity);
vec3 light_color = base_color.rgb + (vec3(1.0) - base_color.rgb) * highlight_intensity;
vec3 base_grass_color = mix(dark_color, light_color, combined_factor);
// ---> LOGICA CHIAZZE ERBA (NOISE) <---
// Campioniamo il noise usando la posizione XZ del singolo ciuffo d'erba nel mondo.
// Usiamo textureLod con 0.0 perché siamo nel vertex shader.
float n_val = textureLod(grass_noise, instance_pos.xz * noise_scale, 0.0).r;
// Creiamo la maschera per la chiazza: liscia ai bordi, solida al centro.
float patch_mask = smoothstep(patch_threshold - patch_smoothness, patch_threshold + patch_smoothness, n_val);
// Mescoliamo il colore base dell'erba con il colore scuro della chiazza
v_final_color = mix(base_grass_color, patch_color.rgb, patch_mask * patch_intensity);
// --- LOGICA TRASFORMAZIONE ---
if (billboard_enabled) {
vec3 view_pos_origin = (VIEW_MATRIX * vec4(instance_pos, 1.0)).xyz;
vec2 offset = (UV - 0.5) * leaves_scale;
float c = cos(total_angle);
float s = sin(total_angle);
vec2 rotated_offset = vec2(offset.x * c - offset.y * s, offset.x * s + offset.y * c);
vec3 final_pos = view_pos_origin + vec3(rotated_offset.x, rotated_offset.y, 0.0);
MODELVIEW_MATRIX = mat4(1.0);
MODELVIEW_MATRIX[3].xyz = final_pos;
VERTEX = vec3(0.0);
} else {
float c = cos(total_angle);
float s = sin(total_angle);
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;
}
}
void fragment() {
vec2 shifted_uv = UV + texture_offset;
vec4 tex = texture(alpha_texture, shifted_uv);
// Trucco utile per non renderizzare i bordi trasparenti dei piani (opzionale)
if (tex.r * opacity < 0.5) {
discard;
}
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);
vec3 dark_snow = snow_color.rgb * (1.0 - shadow_intensity);
vec3 shaded_snow = mix(dark_snow, snow_color.rgb, v_shade_factor);
vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
ALBEDO = final_albedo;
// ALPHA = tex.r * opacity; -> Disabilitato se usi 'discard' sopra.
// ALPHA_SCISSOR_THRESHOLD = 0.5; -> Idem
ROUGHNESS = 0.02;
}
void light() {
float shadow_factor = mix(1.0 - cast_shadow_strength, 1.0, ATTENUATION);
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask;
}

View File

@@ -0,0 +1 @@
uid://bpdgijwdxy7n2

View File

@@ -1,19 +1,24 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://cudoptcrtgl7u"] [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"] [ext_resource type="Texture2D" uid="uid://32bpa4nk3av1" path="res://Assets/Textures/grass_round.png" id="2_4d6mx"]
[resource] [resource]
render_priority = 0 render_priority = 0
shader = ExtResource("1_528a5") shader = ExtResource("1_528a5")
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) 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("2_4d6mx") shader_parameter/alpha_texture = ExtResource("2_4d6mx")
shader_parameter/leaves_scale = 1.0 shader_parameter/leaves_scale = 0.5
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
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.3230000153425 shader_parameter/random_mix = 0.010000000475
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6

View File

@@ -8,15 +8,16 @@ render_priority = 0
shader = ExtResource("1_2uy3m") shader = ExtResource("1_2uy3m")
shader_parameter/billboard_enabled = true shader_parameter/billboard_enabled = true
shader_parameter/wind_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/alpha_texture = ExtResource("2_2uy3m")
shader_parameter/leaves_scale = 1.375 shader_parameter/leaves_scale = 1.375
shader_parameter/rotation_degrees = 180.0 shader_parameter/rotation_degrees = 180.0
shader_parameter/texture_offset = Vector2(0, 0) 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/height_min = 6.0 shader_parameter/height_min = 6.0
shader_parameter/height_max = 9.26 shader_parameter/height_max = 11.0
shader_parameter/shadow_intensity = 0.8270000392825 shader_parameter/shadow_intensity = 0.800000038
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

View File

@@ -0,0 +1,16 @@
[gd_scene format=3 uid="uid://brqegc2s0l3i7"]
[ext_resource type="PackedScene" uid="uid://bdhplbjwhh2vk" path="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N1.fbx" id="1_uw00j"]
[ext_resource type="Material" uid="uid://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="2_1j6pe"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_mwlxq"]
[ext_resource type="Material" uid="uid://couj6glsrm6h3" path="res://Materials/Sentiero.tres" id="3_mwlxq"]
[ext_resource type="Material" uid="uid://df1ghvw3d61x8" path="res://Materials/Treno1.tres" id="4_d47us"]
[node name="Chunck_M_N1" unique_id=272269891 instance=ExtResource("1_uw00j")]
script = ExtResource("2_mwlxq")
altezza_ovest = 1
[node name="Cube_018" parent="." index="0" unique_id=1270638999]
surface_material_override/0 = ExtResource("2_1j6pe")
surface_material_override/1 = ExtResource("3_mwlxq")
surface_material_override/2 = ExtResource("4_d47us")

View File

@@ -0,0 +1,17 @@
[gd_scene format=3 uid="uid://p3s88lqqp23x"]
[ext_resource type="PackedScene" uid="uid://bdhplbjwhh2vk" path="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N1.fbx" id="1_uf7ih"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_onmcc"]
[ext_resource type="Material" uid="uid://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="3_k7tkw"]
[ext_resource type="Material" uid="uid://couj6glsrm6h3" path="res://Materials/Sentiero.tres" id="4_121lx"]
[ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="5_uf7ih"]
[node name="Chunck_M_N1" unique_id=272269891 instance=ExtResource("1_uf7ih")]
script = ExtResource("2_onmcc")
ovest = true
altezza_ovest = 1
[node name="Cube_018" parent="." index="0" unique_id=1270638999]
surface_material_override/0 = ExtResource("3_k7tkw")
surface_material_override/1 = ExtResource("4_121lx")
surface_material_override/2 = ExtResource("5_uf7ih")

View File

@@ -0,0 +1,17 @@
[gd_scene format=3 uid="uid://dx6yaepaymgyl"]
[ext_resource type="PackedScene" uid="uid://d0b564s37jjbf" path="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O1.fbx" id="1_khm7x"]
[ext_resource type="Material" uid="uid://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="2_jhcdi"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_vlm65"]
[ext_resource type="Material" uid="uid://df1ghvw3d61x8" path="res://Materials/Treno1.tres" id="3_vlm65"]
[ext_resource type="Material" uid="uid://768v64kvq6ho" path="res://Materials/SentieroRotaie.tres" id="4_g14e4"]
[node name="Chunck_M_N-O1" unique_id=1841120006 instance=ExtResource("1_khm7x")]
script = ExtResource("2_vlm65")
altezza_sud = 1
altezza_ovest = 1
[node name="Chunk_056" parent="." index="0" unique_id=809841081]
surface_material_override/0 = ExtResource("3_vlm65")
surface_material_override/1 = ExtResource("2_jhcdi")
surface_material_override/2 = ExtResource("4_g14e4")

View File

@@ -0,0 +1,18 @@
[gd_scene format=3 uid="uid://dta4a3xxf4n05"]
[ext_resource type="PackedScene" uid="uid://dg3lahxw8ytd4" path="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O_E1.fbx" id="1_kjho8"]
[ext_resource type="Material" uid="uid://df1ghvw3d61x8" path="res://Materials/Treno1.tres" id="2_4vqda"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_hrodc"]
[ext_resource type="Material" uid="uid://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="3_hrodc"]
[ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://Materials/Staccionata.tres" id="4_0xwu7"]
[node name="Chunck_M_N-O_E1" unique_id=121021168 instance=ExtResource("1_kjho8")]
script = ExtResource("2_hrodc")
altezza_nord = 1
altezza_sud = 1
altezza_ovest = 1
[node name="Chunk_058" parent="." index="0" unique_id=1330468326]
surface_material_override/0 = ExtResource("2_4vqda")
surface_material_override/1 = ExtResource("3_hrodc")
surface_material_override/2 = ExtResource("4_0xwu7")

View File

@@ -0,0 +1,35 @@
[gd_scene format=3 uid="uid://llwlehmpav1p"]
[ext_resource type="PackedScene" uid="uid://bfws5cqrfe4vl" path="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O-E-S1.fbx" id="1_6v0fe"]
[ext_resource type="Material" uid="uid://bu8wmlp0ffark" path="res://Materials/Treno3.tres" id="2_jpfbb"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_wo5r1"]
[ext_resource type="Material" uid="uid://d1xcve6aswe3d" path="res://Materials/TrainChunk.tres" id="3_wo5r1"]
[ext_resource type="Material" uid="uid://df1ghvw3d61x8" path="res://Materials/Treno1.tres" id="4_wr2xf"]
[node name="Chunck_M_N-O-E-S1" unique_id=515911998 instance=ExtResource("1_6v0fe")]
script = ExtResource("2_wo5r1")
altezza_nord = 1
altezza_est = 1
altezza_sud = 1
altezza_ovest = 1
[node name="Chunk_059" parent="." index="0" unique_id=2099343421]
surface_material_override/0 = ExtResource("2_jpfbb")
[node name="Orto_Big_003" parent="." index="1" unique_id=1086972900]
material_override = ExtResource("3_wo5r1")
[node name="Orto_Big_004" parent="." index="2" unique_id=802928204]
material_override = ExtResource("3_wo5r1")
[node name="Orto_Big_006" parent="." index="4" unique_id=1448199652]
material_override = ExtResource("4_wr2xf")
[node name="Orto_Big_007" parent="." index="5" unique_id=891591826]
material_override = ExtResource("3_wo5r1")
[node name="Orto_Big_009" parent="." index="7" unique_id=1202989086]
material_override = ExtResource("4_wr2xf")
[node name="Orto_Big_010" parent="." index="8" unique_id=1821355826]
material_override = ExtResource("3_wo5r1")

View File

@@ -0,0 +1,172 @@
[gd_scene format=4 uid="uid://dpstb26gs581l"]
[ext_resource type="PackedScene" uid="uid://bfws5cqrfe4vl" path="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O-E-S1.fbx" id="1_anh2f"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_2wsw6"]
[ext_resource type="Material" uid="uid://bu8wmlp0ffark" path="res://Materials/Treno3.tres" id="3_grv42"]
[ext_resource type="Material" uid="uid://d1xcve6aswe3d" path="res://Materials/TrainChunk.tres" id="4_0s706"]
[ext_resource type="Material" uid="uid://df1ghvw3d61x8" path="res://Materials/Treno1.tres" id="5_e6288"]
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="6_grv42"]
[ext_resource type="Texture2D" uid="uid://8sdgkykyg5l5" path="res://Assets/Textures/rock_color.png" id="7_0s706"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_e6288"]
render_priority = 0
shader = ExtResource("6_grv42")
shader_parameter/albedo_color = Color(0.80049086, 0.80049074, 0.80049074, 1)
shader_parameter/albedo_texture = ExtResource("7_0s706")
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = -5.62
shader_parameter/gradient_end_y = 10.505
shader_parameter/light_steps = 3.0
shader_parameter/step_softness = 0.1
shader_parameter/shadow_color = Color(0.4, 0.4, 0.6, 1)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_80fwj"]
[sub_resource type="ArrayMesh" id="ArrayMesh_xjipq"]
_surfaces = [{
"aabb": AABB(-0.8691641, -1.0336405, -0.8410101, 1.7731525, 2.0458593, 1.8830655),
"format": 34896613377,
"index_count": 852,
"index_data": PackedByteArray("NgA3AGoANgBqAAgACABqADcANgAEADcACAA3AGsANwBVAGsACABrAFUANwASAFUANgAIAAMANgBsAAQANgADAGwAbQAEAGwABABuADcAAABsAAMAbQAuAAQABAAuAG4AbQBsAAIAAAACAGwAbQBvAC4AbQAvAG8AbQACAC8ALgBvAC8ANwBuAGcANwBnABIAAgA9AC8AAABwAAIAAgBwAD0AAAABAHAAbgBxAGcAAAByAAEAAAADAHIAAQA1AHAABQByAAMABQADAAgAAQByADoABQAGAHIABgA6AHIABQAIADgABQA4ADkABQA5AAYAOQA4AAgABgA7ADoABgAJADsAOgA7AAkABgA5AAkAAQA6AHMAAQBzADUAOgAJAHQAOgB0AAcACQAHAHQAcwA6AEAAOgAHAEAAcwBAAHUAcwB1AEEAcwBBADUAQQB1AEAACQB2AAcACQA/AHYABwB2AD8ACQA8AD8AOQA8AAkABwA/AEcAPAAPAD8ARwA/AA8APAAOAA8AOQALADwACwAOADwAOQAKAAsAOQB3AAoAOQAIAHcACAAKAHcACAAMAAoACABVAAwACwAKAA0ADAANAAoACwBUAA4ACwANAFQADABVABEAEgARAFUADABXAA0ADAARAFcAVAANABMAVwATAA0AVAATAHgAVAB4AFMAVABTAA4AUwB4ABMAUgAOAFMADwAOAFIAUgBTAFYAUwATAFYADwBSABAARwAPABAAUgBWAHkAUgB5ABAAVwB6ABMAVwAUAHoAEwB6ABQAVwARABQAVgATABYAEwAUABYAeQBWAFoAVgAWAFoAHQAQAHkASABHABAASAAQAB0AewBHAEgABwBHAHsAHQB5ABoAeQBaABoABwB7AEUAQAAHAEUAQABFAHwARAB8AEUAQAB8AEQAQABEAH0AQQBAAH0AQQB9AEQARgBFAHsARABFAEYAQQBEAH4ARgB7AH8AewBIAH8AQQB+ADIAMgB+AEQAQQAyADQAHgBEAEYAMgBEAB4ASQBGAH8AHgBGAEkAQwAyAB4ANAAyAEMANQBBADQAQwAeACQAJAAeAEkANABDAEIASgBDACQASgBCAEMAMQA0AEIANQA0ADEAgABCAEoAMQBCACoAgAAqAEIAPQAxACoAPgA1ADEAPQA+ADEAPgAzADUAgQA1ADMAgQAzAD4AgQBwADUAgQA9AHAAgQA+AIIAPQCCAD4AgQCCAD0APQAqADAALAAwACoAPQAwACwALAAqAIAAPQAsAIMAaQA9AIMAaQCDACwAaQAvAD0ALgAvAGkAaQAsAC0ALgBpAC0ALACAACkALAApACsALQAsACsAgAAmACkAgABKACYATgApACYATgArACkAJgBKACMAIwBKACQAJgAjAE0ATgAmAE0AIwAkACIAJABJACIATQAjAEwATAAjACIAIgBJAEsASQB/AEsATAAiAE8AIgBLAE8AfwCEAEsAfwBIAIQAhABIAB0AhACFAEsATwBLAIUAhAAdAFEAhABRAIUAUQAdABoATwCFAFAAhQAhAFAAIQBPAFAAhQBRACEAIQBMAE8AUQAaAF8AIQBRAF8AGgBbAF8AYABMACEATQBMAGAAGgBaAFsAYQBNAGAAYQBOAE0AYAAhACAAhgBhAGAAhgBgACAAIAAhABwAIQBfABwAIAAcAB8AGwAgAB8AHAAbAB8AGwCGACAAXwAZABwAHAAZABsAXwBbABkAFwCGABsAGQAXABsAFwAYAIYAGABhAIYAGQBeABcAWwBeABkAhwAYABcAXgCHABcAGAAlAGEAJQBOAGEAhwBiABgAYgAlABgAJQAnAE4AJwArAE4AYgBkACUAZAAnACUAKAArACcAZAAoACcAKACIACsALQArAIgALQCIACgAiQAoAGQALQAoAIkAZQBkAGIAiQBkAGUAZQBiAGMAYwBiAIcAcQCJAGUAZgBlAGMAZgBxAGUAZgBnAHEAcQBoAIkAaAAtAIkAbgBoAHEALgBoAG4AaACKAC0ALgAtAIoALgCKAGgAWQBnAGYAEgBnAFkAEgBZAIsAEgCLABEAEQCLAFkAWQBmAIwAEQBZAIwAZgBjAIwAEQCMAFgAEQBYABQAjABjAF0AjABdAFgAYwCHAF0AXgBdAIcAFgAUAFgAXABdAF4AXABYAF0AFgBYAFwAWwBcAF4AFgBcAI0AjQBcAFsAFgCNAI4AFgCOAFoAjQBbAI8AWwBaAI8AFQCOAI0AWgCOABUAFQCNAI8AjwBaABUA"),
"lods": [0.04496627, PackedByteArray("NgAEADcABAA2AAIAAAACADYAAAA2AAMAAAADAAEAAAABAAIANgAIAAMACAA2ADcABQADAAgABQABAAMABQAIADgABQA4ADkAOQA4AAgABQAGAAEABQA5AAYABgA6AAEABgA7ADoABgAJADsAOgA7AAkABgA5AAkAAQA6ADUAAQA1AAIACQAHADoAMwACADUAOQA8AAkAMwA9AAIAPgAzADUAMwA+AD0ACQA/AAcACQA8AD8AOgAHAEAANQA6AEAAPgA1ADEAPQA+ADEANQBAAEEANQA0ADEANQBBADQAMQA0AEIAMQBCACoAPQAxACoANABDAEIAQQAyADQANAAyAEMAQQBAAEQAQQBEADIAQABFAEQAQAAHAEUAMgBEAB4AQwAyAB4ARABFAEYAHgBEAEYABwBHAEUABwA/AEcARgBFAEgARQBHAEgAHgBGAEkASQBGAEgAQwAeACQAJAAeAEkASgBDACQASgBCAEMAKgBCAEoAIwBKACQAJABJACIAIwAkACIAIgBJAEsASQBIAEsATAAjACIAJgBKACMAKgBKACYAJgAjAE0ATQAjAEwAKgAmACkATgAmAE0ATgApACYATAAiAE8AIgBLAE8ATwBLAFAASABQAEsAIQBMAE8AIQBPAFAASABRAFAAUABRACEASAAdAFEASAAQAB0ASABHABAAUQAdABoAHQAQABoARwAPABAARwA/AA8APAAPAD8ADwBSABAAUgAaABAAPAAOAA8ADwAOAFIACwAOADwAOQALADwAUgAOAFMAOQAKAAsAOQAIAAoACwBUAA4AVABTAA4ACwAKAA0ACwANAFQACAAMAAoADAANAAoACABVAAwAVAANABMAUwBUABMACAA3AFUAUgBTAFYAUwATAFYAUgBWABoAVwATAA0ADABXAA0ADABVABEADAARAFcANwASAFUAEgARAFUAVwAUABMAVwARABQAEwAUABYAVgATABYAEQBYABQAFgAUAFgAEgBZABEAEQBZAFgAVgAWAFoAGgBWAFoAFgAVAFoAGgBaAFsAWwBaABUAFgBcABUAFgBYAFwAFQBcAFsAXABYAF0AWQBdAFgAWwBcAF4AXABdAF4AGgBbAF8AUQAaAF8AIQBRAF8AXwBbABkAWwBeABkAIQBfABwAXwAZABwAIAAhABwAGQBeABcAHAAZABsAGQAXABsAHAAbAB8AIAAcAB8AGwAgAB8AGwAYACAAFwAYABsAYAAhACAAGABgACAAYABMACEATQBMAGAAYQBNAGAAGABhAGAAYQBOAE0AYgAYABcAXgBiABcAGAAlAGEAJQBOAGEAYgAlABgAXgBdAGIAJQAnAE4AYwBiAF0AWQBjAF0AYgBkACUAZAAnACUAZQBiAGMAZQBkAGIAZgBjAFkAZgBlAGMAWQBnAGYAEgBnAFkANwBnABIANwAuAGcALgBmAGcABAAuADcAZgBoAGUAaABkAGUALgBoAGYAaAAoAGQAZAAoACcALgAtAGgALQAoAGgABAAvAC4ABAACAC8ALgBpAC0ALgAvAGkAAgA9AC8AaQAvAD0AKAArACcALQArACgAJwArAE4ATgArACkALQAsACsAaQAsAC0ALAApACsAPQAsAGkALAAqACkAPQAqADAALAAwACoAPQAwACwA"), 0.20663747, PackedByteArray("AAABAAIAAAADAAEAAAAEAAMAAAACAAQABQABAAMABQAGAAEABgAHAAEABQADAAgABAAIAAMABgAFAAkABwAGAAkABQAIAAoABQALAAkABQAKAAsACAAMAAoACAAEAAwACwAKAA0ADAANAAoACwAOAAkACwANAA4ACQAPAAcACQAOAA8ABwAPABAADwAOABAADAARAA0ABAASAAwAEgARAAwADgANABMADQARABQADQAUABMAFQAOABMAEAAOABUAEwAUABYAFQATABYAFgAUABUAEQAXABQAFQAUABcAEQAYABcAEgAYABEAGQAVABcAEAAVABoAGgAVABkAGQAXABsAFwAYABsAGgAZABwAHAAZABsAHQAQABoAHQAaABwAHgAQAB0AHgAHABAAHAAbAB8AGwAgAB8AIAAcAB8AGwAYACAAIQAdABwAIAAhABwAIgAdACEAIgAeAB0AIwAhACAAIwAiACEAGAAjACAAJAAeACIAIwAkACIAGAAlACMAEgAlABgAJgAkACMAJQAnACMAJwAmACMAJQAoACcAKAAlABIAJwApACYAKgAkACYAKgAmACkAJwArACkAKAArACcALAApACsALAAqACkALQArACgALQAsACsAEgAuACgALgAtACgABAAuABIALgAvAC0ABAAvAC4ALwAsAC0ABAACAC8ALAAwACoAMQAwACwAMQAsAC8AMQAqADAAAgAxAC8AKgAyACQAMQAyACoAMgAeACQAMwAxAAIAMQA0ADIAMwACADUAMQAzADUANQA0ADEANQAyADQANQAeADIAAQA1AAIABwAeADUAAQAHADUA")],
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 144,
"vertex_data": PackedByteArray("KkI8K97OAADbZ+YogNcAALw9dBT2iAAAGj2FNIDRAAAAAD9KE44AAMFNP0Zc3wAA22CsPrvjAAC607dyic0AAEk2rml7vgAA0IbMasD6AABzUYeUStMAAEdj6pTz6gAA+0EohEW4AAAMUUS7yNIAAHaF878A9gAAirBVsIvbAACEvGrBxcMAAP8ZEsdSlgAAlggvlqmIAACWXuHlmcgAAKks8OkonAAAIIL//2mNAACqZrf6QqcAAN1sZd6lEwAAimNuv/4CAAC5j0P9rEAAAGa1ut4slgAAmImY6tcXAAASwajh3jQAAPjDI8uKlgAA///pM3FqAADAtH7eziQAAEa/ecQdIAAAodcuxuc0AACV7p5s0z0AAOnKvmwSLQAAXe5YStBDAAC4V0yYAAAAAIqyzkZdJgAA730ZVEATAABlOGtt5QUAANmET0OIFwAAVZWaLEgmAACMZqdToCQAAGVfR0tSOwAAZjxrVP84AAA7BRZB4WkAAFYwkh/2cgAAiXDRKldMAAB9hRcIGmwAAFXrUiApagAAzosAAIKEAABF0CESKnEAADSWUwRamQAAFRsSSMStAADYAf9rEpEAAKVKN2V82QAAvVlJctbmAAAhl2hBKs0AAO58zUt06gAAhIOWlP//AADPY8oVBmgAAOOKewRVcgAASLoKmSjdAABTvAFJcbIAAH+7VhEqiwAA6saFJr4+AACU28Mn81AAAJTwm0nAlQAAQOPEaOy3AAD36wReE6MAADvPrpNdyAAA+NI+nsmUAADs87xqIlwAAGfEuTxoLwAAJeNWlrRrAADrygySeScAADKz8GyuKQAAa3afaCwaAACa7CiVUDwAADHi/K4hQQAAMNSJwbFpAAAYpRHLj9AAAMCCENqD3wAASXBVyGbnAACfKY6IaaAAAFOGJuuuyAAA9TwHxBS8AADHMF7eCmcAAGEWubZDcAAACofI+k+hAADnkLz/z2IAAHRn5vLLZgAARUdZ4ClCAAABW3bn7jMAAC2+buNMagAAncX7mMMkAAALk8OUeBcAALtF5L0FIAAAijRQxLg7AABESIyQtgMAAAsnAph2PgAA8CBUp81UAAAVFD2YHmUAAEgZl1qoOgAA5zZrNbRZAAB/Hqtd/qwAAPslQHhZpwAA/yNVNECiAABYHi0vMIUAAEUJLm3/aAAAWB+GLdRyAAAYZwML5Y4AAO0duYxhTQAAuWgFLVXaAAAEgnAWorgAAIqoklpN1AAA7ayiLqasAAD5uAJ0reEAAM5Op3+k1QAAWW/x1H7eAADxr9TVZ7MAAExG/+EyuAAADduJhR+xAAAR3KtVzq0AAMHKJzyboQAACODaKqCGAACP3I6KAJUAAF+Spi+6IwAAD3pFBsONAACien8JVXIAANNQHjIaVQAANdblo3x6AACk3K2vKF4AACiP6cPlDAAAjE5e0PwoAACaTadYYigAAF0jzmQRKQAAyxNsUr5IAADgE2K9GY8AAB8fLsPPZAAAYXhD+UFzAADIfpH/45gAAIyOhf+9awAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_sf63q"]
resource_name = "rock2_Cube_001"
_surfaces = [{
"aabb": AABB(-0.8691641, -1.0336405, -0.8410101, 1.7731525, 2.0458593, 1.8830655),
"format": 34896613383,
"index_count": 852,
"index_data": PackedByteArray("jwDmAOcAjwAFAOYAjwDnAAYAjwAGAAcACAAHAAYACAAGAJEABgDnAJAAkgCRAAYAkAAKAJMAkACTAOgABgCQAOgABgDoAJMABgCTAAkAkgAGAOkABgALAOkAkgDpAAsABgAMAAsAkgALAA0ADQALAA4ADwAOAAsADwCVAA4ADwAQAJUADwCUABAA6gAQAJQA6gDrABAADQAOAJcADQCXABMADQATAJgAlwAOABIAlwASAOwAlgASAA4AlgDtABIAlgARAO0AlgDuABEAmQANAJgAmQCYABQAFgCZABQAFgAUAJoAFQCZABYAFQCbAJkAAADvAAIAAAABAO8AAQADAO8AAQDwAAMA8QDvAAMA8QADAAQAnADyAB0AnAAeAPIAHADyAB4AHAAfAPIA8wAdAPIA8wDyAB8A8wAhAB0A8wAfACAA8wD0ACEA8wAgAPQAFwD1ABkAFwAbAPUAGgAZAPUAGgD1ABgA9gAjACQA9gD3ACMAQACtAPgAQAD5AK0AQQBAAPgAQQD4AKwA+ACtAPoArAD4AKsA+AD6AKsArACrADkA+gCtAPsAOQCrAPwAOQD8AP0A/ACrAKYApgCrAPoA/ACmAP4ApgD/AP4ApgD6AK4ApgCuAP8A+gD7AK4ArgAAAf8ArgABAQAB+wABAa4A+wA/AAEBoQApACoAoQACASkAogApAAIBoQCiAAIBogAuACkAogAyAC4AogADATIAMwAuADIAMwAyAAQBMwAEATQAMwA0ADUAoQAoAKIAKwAoAKEAKwAFASgAKwChACoAKwAqAAYBowAGASoAowAqAAcBKgAtAAcBKgAIAS0ALQAIAS8AKgAvAAgBLQAvADAAKgAxAC8AsgCzAAkBsgC1ALMAtgCyAAkBtgAJAQoBRQC1ALIARQBDALUACwGyALYARQCyAAsBCwG2AAwBRQALAQ0BQgALAQwBQgANAQsBsAA+ADoAsACvAD4ADgGwADoADgE6ADwAsQAOATwApwCwAA4BsQCpAA4BpwAOAakADwGnAKkADwGpAKoAOwAPAaoAOwCqAD0AOwCoAA8BOwAQAagAEQG4AEoAEQESAbgAEQG3ABIBuAASAbcAEQG8ALcATQC8ABEBTQATAbwATgC8ABMBTgC9ALwAvAC9AE8AvABPABQBTwBIABQBvAAUAUgATwAVAUgAvABIALcAtwBIALoAtwC6ABYBtwAWAbkAuAC3ABcBtwC5ABcBuAAXAbkAuAC5ABgBSwAYAbkASwC5AEkAGQEYAUsAGQFLAEwAGgEbAbsAGgEcARsBvgBSAL8AvgBRAFIAUAC+AL8AUAC/AB0BUwAdAb8AUwC/AMAAwAC/AB4BwAAeAVQAHgHBAFQAHgFVAMEAwQBVAMIAwQDCAMMAwQAfAVQAwQDDAB8BWgBUAB8BHwHDAMQAWgAfAVcAHwHEAFcAxwBaAFcAIAHEAFYAxQDEACABVwDEAMUAVwDFAMYAxgDFAFgAxgBYAFkAxwBXAMgAXADHAMgAXADIAFsAIQHHAFwAIQFcAMkA0QAhAckAIgHHACEB0QDQACEBIgEhAdAAXQDQANEAIgEjAccAXQDPANAAIgHKACMBygBfACMBygAkAV8AJQEiAdAAJQHKACIBzwAlAdAAJgEkAcoAJgHKACUBzwDNACUBzQAmASUBXgDNAM8AXgDOAM0AzQDMACYBYAAmAcwAYADLACYBYQDSAGMAYQBkANIAZADTANIAZABiANMAJwFmANUAJwFoAGYAZgBnANUAZgDZAGcAZwDZAGwAZwBsAG0A2gBnAG0A2gBtANsA1QBnANgA1QDYANcA1gDVANcA1gDUANUAKAHWANcAKAHXAGsAagDWACgBagBpANYAaQApAdYAaQBlACkBeADhAHoAeAB5AOEAKgErAXQAKgHeACsBKgHfAN4AKgFzAN8A3gDfAOAA3gDgAHUA4AB3AHUA4AB2AHcALAEtAdwALAEuAS0B3QAuASwB3QAsAW8AewB8AH0AewB+AHwAfwCAAIEAfwAvAYAAgwAvAX8AgwCCAC8BcABxAHIAcABuAHEAJwAwAaAAoAAwASUAnwAnAKAAnwAiACcAnQAiAJ8AnQAxASIAngAxAZ0AngCdACYApAClACwAMgE4AKUAMgGlADMBpAAzAaUAMgEzAaQAMgGkADQBNgA0AaQANgCkADcANQGFAOIA4gCFAIYARgBEAEcARgC0AEQA5ACLAIkA5ACKAIsAjACNAI4AjADlAI0A4wCEAIcA4wCIAIQA"),
"lods": [0.04496627, PackedByteArray("jwAFAJAABgCPAJAAjwAGAAcACAAHAAYACAAGAJEAkgCRAAYABgCQAJMAkAAKAJMABgCTAAkAkgAGAAsABgAMAAsAkgALAA0ACgAQAJQADwCUABAADwAQAJUADwCVAA4ADwAOAAsADQALAA4AlgAQABEAlgARABIAlgASAA4AlwAOABIADQAOAJcADQCXABMADQATAJgAmQANAJgAmQCYABQAFgCZABQAFgAUAJoAFQCZABYAFQCbAJkAAAABAAIAAQADAAIABAACAAMAFwAYABkAGgAZABgAFwAbABgAHACcAB4AHAAfAJwAHQCcAB8AHQAfACAAHQAgACEAIgAjACQAnQCeACIAngCdACYAnQAiAJ8AnwAiACcAnwAnAKAAJwAlAKAAoQApACoAogApAKEAogAuACkAoQAoAKIAKwAoAKEAKwChACoAKwAqAKMAKgAtAKMAogAyAC4AogAsADIAMwAuADIAMwAyADQAMwA0ADUAKgAvAC0ALQAvADAAKgAxAC8ApAClACwAOAClAKQAOACkADYANgCkADcApgCnAKgAqACnAKkAqACpAKoAOwCoAKoAOwCqAD0AOQCoADsAOQCrAKgAqACrAKYArACrADkArABAAKsAQACmAKsAQQBAAKwAQACtAKYApgCtAK4ApgCuAKcArQCvAK4ArQA/AK8ArgCwAKcArgCvALAApwCwAKkAsACvAD4AsQCpALAAsAA+ADoAsQCwADwAsAA6ADwAsgCzALQAsgC1ALMARQC1ALIARQBDALUARQCyAEIAQgCyALYAtgCyALQAtgC0AEYARgC0AEQARgBEAEcASgC3ALgAuABLAEwAuAC5AEsASwC5AEkAuAC3ALkAtwC6ALkAuQC6ALsAtwBIALoASgC8ALcAvABIALcATQC8AEoATwBIALwATgC8AE0AvAC9AE8ATgC9ALwAvgBSAL8AUAC+AL8AvgBRAFIAUAC/AFMAUwC/AMAAwAC/AFIAwABSAFQAUgDBAFQAUgBVAMEAwQBVAMIAwQDCAMMAwQBXAFQAwQDDAFcAVwDDAMQAWgBUAFcAVwDEAMUAxQDEAFYAVwDFAMYAxgDFAFgAxgBYAFkAxwBaAFcAxwBXAMgAXADHAMgAXADIAFsAyQDHAFwAygBaAMcAygDHAMkAygBfAFoAygDLAF8AYADLAMwAzADLAMoAzQDMAMoAXgDOAM0AXgDNAM8AzwDNAMoAzwDKANAAygDJANAAXQDPANAA0QDQAMkAXQDQANEAYQDSAGMAYQBkANIAZADTANIAZABiANMA1ABmANUA1ABoAGYAaQBlANQAaQDUANYA1gDUANUAagBpANYAagDWANcA1gDVANcAagDXAGsA1QDYANcA1QBnANgAZgBnANUAZgDZAGcAZwDZAGwAZwBsAG0A2gBnAG0A2gBtANsAbgDaANsAbgDbANwA3QDaAG4A3QBuAG8AcABuAHEAcABxAHIAcwBmAHQAcwDeAGYAcwDfAN4A3gDfAOAA3gDgAHUA4AB3AHUA4AB2AHcAeADhAHoAeAB5AOEAewB8AH0AewB+AHwAfwCAAIEAfwCCAIAAgwCCAH8AhACFAOIA4gCFAIYA4wCIAIQA4wCEAIcA5ACLAIkA5ACKAIsAjACNAI4AjADlAI0A"), 0.20663747, PackedByteArray("AAABAAIAAQADAAIABAACAAMABQAGAAcACAAHAAYABgAFAAkABQAKAAkACAAGAAsABgAMAAsACAALAA0ADQALAA4ADwAOAAsACgAQAA8ADwAQAA4ADgAQABEADgARABIAEwAOABIADQAOABMADQATABQAFQANABQAFgAVABQAFwAYABkAGgAZABgAFwAbABgAHAAdAB4AHAAfAB0AHQAfACAAHQAgACEAIgAjACQAJQAmACIAJQAiACcAKAApACoAKwAoACoALAApACgAKwAqAC0ALAAuACkAKgAvAC0ALQAvADAAKgAxAC8ALAAyAC4AMwAuADIAMwAyADQAMwA0ADUANgAsADcAOAAsADYAOQA6ADsAOwA6ADwAOwA8AD0AOQA+ADoAPwA+ADkAOQBAAD8AQQBAADkAQgBDAEQARQBDAEIARgBCAEQARgBEAEcASABJAEoASgBJAEsASgBLAEwATQBIAEoATgBIAE0ASABOAE8AUABRAFIAUABSAFMAUwBSAFQAUgBVAFQAVABVAFYAVABWAFcAVwBWAFgAVwBYAFkAWgBUAFcAWgBXAFsAXABaAFsAXQBaAFwAXQBeAFoAXgBfAFoAXgBgAF8AYQBiAGMAYQBkAGIAZQBmAGcAZQBoAGYAaQBlAGcAagBpAGcAagBnAGsAZgBsAGcAZwBsAG0AZwBtAG4AZwBuAG8AcABuAHEAcABxAHIAcwBmAHQAcwB1AGYAcwB2AHUAdgB3AHUAeAB5AHoAewB8AH0AewB+AHwAfwCAAIEAfwCCAIAAgwCCAH8AhACFAIYAhwCIAIQAiQCKAIsAjACNAI4A")],
"material": SubResource("StandardMaterial3D_80fwj"),
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 310,
"vertex_data": PackedByteArray("KkI8K97O8frbZ+YogNdr+rw9dBT2iPH6NJZTBFqZu/rOiwAAgoR6/AAAP0oTjgipSTauaXu+aK4aPYU0gNHcqsFNP0Zc36iq+0EohEW4orSWCC+WqYgNsXNRh5RK04qr+0EohEW4H7VHY+qU8+qNqgxRRLvI0pur+0EohEW4vKf/GRLHUpaTp6ks8OkonNGull7h5ZnItrF2hfO/APaArtCGzGrA+k6wwU0/RlzfmK3bYKw+u+PDsMFNP0Zc3xjC22fmKIDXCsEaPYU0gNGDwSpCPCvezgrB22CsPrvjGMIqQjwr3s7q0AAAP0oTjnzUGj2FNIDRr8y8PXQU9oiI1lYwkh/2chDaOwUWQeFpDdqWXuHlmcg/4qks8OkonJLTqma3+kKnktMggv//aY3Q93aF878A9pvFqma3+kKn0O1WMJIf9nL06GVfR0tSO+jrZjxrVP84z+w7BRZB4WmR6H2FFwgabJXsZThrbeUF0u2JcNEqV0wV5oxmp1OgJHbu730ZVEATTu5lX0dLUjvE7lWVmixIJn7iZV9HS1I7J+DZhE9DiBcF4Ixmp1OgJAXgvD10FPaIY/FWMJIf9nJj8c6LAACChB7tlggvlqmIacqKY26//gLo6/8ZEsdSltXQ3Wxl3qUTbOupLPDpKJyb0LhXTJgAADvsZThrbeUFGdk7BRZB4WlEygAAP0oTjuHGIIL//2mNyfSpLPDpKJxh+N1sZd6lE9n9qma3+kKnY/i5j0P9rEDZ/ZiJmOrXF9n9utO3conN897//+kzcWpJ6DSWUwRamXreVetSIClqU+hF0CESKnG/6Ntn5iiA10zc22CsPrvjldnQhsxqwPom39CGzGrA+rfadoXzvwD21uKKsFWwi9vW4rrTt3KJzcrphLxqwcXD0/l2hfO/APZB9CCC//9pjRr8ZrW63iyWIP65j0P9rEDJ+BLBqOHeNMn4+MMjy4qWwf4Swajh3jS4/aHXLsbnNE3+le6ebNM9xf///+kzcWrq/4S8asHFw4v/utO3conN7vx9hRcIGmzA91XrUiApalj6VZWaLEgmwPdF0CESKnE3+e99GVRAE3L5irLORl0mY/fpyr5sEi17+tmET0OIF0z1uFdMmAAAXvqKY26//gKu+0a/ecQdIN77Xe5YStBDP/qV7p5s0z1B+aHXLsbnNGboRr95xB0gAPVGv3nEHSBm6BLBqOHeNGbowLR+3s4kZuhVlZosSCZv+tmET0OIF1v+Xe5YStBDa/xV61IgKWog/P//6TNxaiD8Xe5YStBDjP3//+kzcWqM/ZXunmzTPYz9EsGo4d40xuyYiZjq1xfG7MC0ft7OJMbsuY9D/axAxuyYiZjq1xeT70a/ecQdIEPtwLR+3s4kQ+2KY26//gIq891sZd6lEyrz730ZVEATB/2MZqdToCT18dmET0OIF/XxuFdMmAAAB/1lOGtt5QUH/X2FFwgabOf+zosAAIKE5/40llMEWpnn/jSWUwRamaj8RdAhEipxqPx9hRcIGmyo/BUbEkjErVKq2AH/axKRyLClSjdlfNkkrL1ZSXLW5vqsnymOiGmgMLKfKY6IaaBlp/U8B8QUvMOn9TwHxBS80q9JcFXIZueHroSDlpT//7usvVlJctbmS6/ufM1LdOr1tKVKN2V82ZitFRsSSMSt3brAghDag98az0lwVchm55vFU4Ym667IoeIKh8j6T6Fz8uc2azW0WWTqz2PKFQZoouhIGZdaqDpq7s9jyhUGaJLv44p7BFVy5+zwIFSnzVTe1Io0UMS4OwTlYRa5tkNwPdFFR1ngKUJt5scwXt4KZz/YFRQ9mB5lHdDYAf9rEpFdyEgZl1qoOl7RCycCmHY+K9ZESIyQtgM77LtF5L0FIELrAVt25+4zT+t0Z+byy2ba9UVHWeApQnfzAVt25+4z2f3HMF7eCmdw9ueQvP/PYob0U7wBSXGya95/u1YRKouI3ZTwm0nAlbvfQOPEaOy3ON336wReE6Ml5SGXaEEqzWre7nzNS3TqRNyEg5aU//9D3ki6Cpko3b/oO8+uk13Ir+4YpRHLj9AX98CCENqD3zb1U4Ym667IBfwKh8j6T6EN/ueQvP/PYnr6Lb5u40xqo/ow1InBsWka/y2+buNMagf+MeL8riFBQ//40j6eyZSD/zvPrpNdyO78QOPEaOy3t//36wReE6O7/5Twm0nAler/7PO8aiJcuv8l41aWtGu7/5rsKJVQPJ//6saFJr4+m/iU28Mn81BY+mt2n2gsGqv/MrPwbK4pvPsLk8OUeBdy/J3F+5jDJB/+68oMknkn8P9nxLk8aC97+evKDJJ5Jy/4muwolVA8L/gx4vyuIUEw8Z3F+5jDJAD1Z8S5PGgvQvzqxoUmvj4b/JTbwyfzUGT87PO8aiJcjP1rdp9oLBr18URIjJC2Awf944p7BFVy5/5/u1YRKouo/NgB/2sSkQipfx6rXf6sR6z7JUB4Waf5sc5Op3+k1XGvlggvlqmIAqngE2K9GY8CqVlv8dR+3tWyTEb/4TK4zq//GRLHUpbRrhhnAwvljmD6BIJwFqK4LfkPekUGw416/P8jVTRAouTMWB4tLzCF4thYH4Yt1HIK2rloBS1V2nHBll7h5ZnIktNMRv/hMriS00UJLm3/aMnMyxNsUr5IrM7tHbmMYU15010jzmQRKVzVYRa5tkNwH9DgE2K9GY+0yh8fLsPPZCnVijRQxLg7aNe7ReS9BSAc2kRIjJC2A3/Z01AeMhpVBet9hRcIGmw451+Spi+6I0LgWB+GLdRyWubLE2xSvkg4610jzmQRKdrtmk2nWGIoO+4BW3bn7jO887mPQ/2sQAz0YXhD+UFzT/aMjoX/vWsK9ch+kf/jmK/3jE5e0PwozeofHy7Dz2RF1uATYr0Zjz3RBIJwFqK4Ft7trKIupqyg3rloBS1V2u/aiqiSWk3U/d/5uAJ0reH/3hHcq1XOrX3cwconPJuhS9wI4NoqoIaK43+7VhEqi7/olPCbScCVJeVA48Ro7Lcl5RHcq1XOrSXl+bgCdK3hbuGKsFWwi9v58/Gv1NVns0z/jI6F/71rGvyk3K2vKF6w/zXW5aN8eq7/+MMjy4qW5v87z66TXchI/4/cjooAlVX/DduJhR+x2P9rdp9oLBpM9SiP6cPlDMT7a3afaCwacvlfkqYvuiPE/IqyzkZdJlv+odcuxuc0aPOa7CiVUDww8evKDJJ5J+DyKI/pw+UMqO/IfpH/45jQ91lv8dR+3n3OD3pFBsONPe2ien8JVXLo7BhnAwvljkTv730ZVEAT9fEwcZlT33AiVDBxmVMlcbNTXHKtUaxvxcMie3LEcXREw95zxshwgjC7dX26s0R1cc54gMHVXXFHtgx2Y8JTaqjKpWkHvL17fsJifxm87nfWrw5mMZdbayqhNmeWlg5cRnr/X5958135ef9fn3kOXEZ68MLQ+u3Buvk/wbr8rsFD+Su8yvn6vi35o4z1qCqI17EqiNexvo4CrEqMgKQAjMarWlD86upLWuMtTArv0FAg7jZMMfzAS0D4ulPg70JLCvhYS/P4AEsV9tNWdfX1Vx/561ZH++tWR/vtSAz87UgM/Hy6r/w6e3/ox2Jaxgt5QtJGZgbFGHmp0u1flcdZbzzWqXta8sd9/vSqdCa+OnOIvl5rsL8kdGq+Xmuwv15rsL+4iRpZUJU0W1CMdVv8kqdYPJDEVeyJoFtbgrFZ/YxmWzqZOnPLoB9+y6Affj2km3u5ojaVdZ9dlCIvLhWZIZMhijEkGYoxJBkSG8onbh0OK94ZWS22CqM4RrVHipYQaTHdrq6JYT9t6Hs0pdthP23obzpE4q7F7FyWxJ9N0sPeUv3E0UsyxNBV+cKsUOfCJlGIxBZYN8X8WLjSim62yVpkuNKKbrjSim640opu0i8Vx4AvhcHYJWnGaSUgyGklIMgOyUSADslEgA7JRICQUi8AkFIvAJBSLwCQUi8AaMRJQ5vGDU2bxg1Np8IsO6fCLDukOirCBkiKzQZIis2kOirCpDoqwljE1nhYxNZ4WMTWeD6K20M+ittDPorbQ+NymL+efei2DHelyXR4y8uqf/a3TGm+vWNq5soMfcy+bXoLuQRw2qhsZyuagWTrjFtrKqGmQ9j2h402pUqMgKSZjBCpAI3Xq2dOCunAUJXsKkrE7LdJiP4Qt7L+hXJZ3eFqksfyeJDRJWrKxtpzJ865doXiwHxS8Ix1W+N8cQrb7V+Vx3hkBsZhZ5fEhXQyvpJzZL5ea7C/UXNpvtl1671/i9xa/4sUXHeMcFpIhw9ZXpisYlSMh1stiSBb5ZwKeBukWH4qp7CBhJ/AlmCes5binYCdQyc+G/gt2hmFLR0aDRUrLscbbSpZEjIxOxKPL92uronUsC2ORw4GM0a1R4puDFc1ww9UMVYNezXGPBnlezSl20HAj062wohNpcJUUlzBbk4+NgnAbcS5U/DF+FnwxfhZcsx5Z7bJWmTAK7vEySmUxdAlh8YOyUSABkiKzaQ6KsJYxNZ4PorbQ6xvxcMUd1m+nH94usN7yNDfa0G032tBtLOA27sHfdq+vXt+wt1wJVQocFNVXHKtUZvBofwlwej4m715+TNe73kqiNexKojXsX95h+oeeNTtyXPL3lZyDNvGdmXhCnt85UFyD91NcCDa8G0Q18puk9ZUTdbkClJU829Y5/dQU5jwo02M7KJLf/NzS4L3VHQ6vkN1CL6VdQq+CHbmvS51Nb7jZivFUHUjz/J4kNFqjOdbG47gXJKGq1p7jDhad4nlWMGGY1kWisBbZI+EWTyQxFVemKxiXpisYl6YrGJRnpF2zKOVjY+gb54iLy4V6hA+MCyv1I94Du4xvBJUMPQSqS+2ENAv/cTRS/HC51CuxexcZy9bw4AvhcHcyqFlcsx5Zz3LD2ZYxAVDvo4CrICNJKWUuUL9VLXO/49J4v8GSIrN")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_xjipq")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_am2a4"]
render_priority = 0
shader = ExtResource("6_grv42")
shader_parameter/albedo_color = Color(1, 1, 1, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.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)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[node name="Chunck_M_N-O-E-S1" unique_id=515911998 instance=ExtResource("1_anh2f")]
script = ExtResource("2_2wsw6")
altezza_nord = 1
altezza_est = 1
altezza_sud = 1
altezza_ovest = 1
[node name="Chunk_059" parent="." index="0" unique_id=2099343421]
surface_material_override/0 = ExtResource("3_grv42")
[node name="Orto_Big_003" parent="." index="1" unique_id=1086972900]
visible = false
material_override = ExtResource("4_0s706")
[node name="Orto_Big_004" parent="." index="2" unique_id=802928204]
visible = false
material_override = ExtResource("4_0s706")
[node name="Orto_Big_006" parent="." index="4" unique_id=1448199652]
visible = false
material_override = ExtResource("5_e6288")
[node name="Orto_Big_007" parent="." index="5" unique_id=891591826]
visible = false
material_override = ExtResource("4_0s706")
[node name="Orto_Big_008" parent="." index="6" unique_id=1331556355]
visible = false
[node name="Orto_Big_009" parent="." index="7" unique_id=1202989086]
visible = false
material_override = ExtResource("5_e6288")
[node name="Orto_Big_010" parent="." index="8" unique_id=1821355826]
visible = false
material_override = ExtResource("4_0s706")
[node name="Orto_Big_011" parent="." index="9" unique_id=611082346]
visible = false
[node name="rock17" type="MeshInstance3D" parent="." index="10" unique_id=1326861948]
transform = Transform3D(8.425, 0, 0, 0, 28.28, 0, 0, 0, 8.425, 0, 3.0042515, -0.34401035)
material_override = SubResource("ShaderMaterial_e6288")
mesh = SubResource("ArrayMesh_sf63q")
skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_am2a4")
[node name="rock18" type="MeshInstance3D" parent="." index="11" unique_id=321722626]
transform = Transform3D(2.7808597, 1.4774096, 3.845124, -4.0206614, -0.035087757, 2.9212925, 0.8955459, -4.7452006, 1.1755714, 4.6011515, 3.0042515, 4.2182083)
material_override = SubResource("ShaderMaterial_e6288")
mesh = SubResource("ArrayMesh_sf63q")
skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_am2a4")
[node name="rock19" type="MeshInstance3D" parent="." index="12" unique_id=1217722920]
transform = Transform3D(2.7808597, 1.4774096, 3.845124, -4.0206614, -0.035087757, 2.9212925, 0.8955459, -4.7452006, 1.1755714, 4.9510026, 3.0042515, -1.9219375)
material_override = SubResource("ShaderMaterial_e6288")
mesh = SubResource("ArrayMesh_sf63q")
skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_am2a4")
[node name="rock20" type="MeshInstance3D" parent="." index="13" unique_id=1505508041]
transform = Transform3D(2.7808597, 1.4774096, 3.845124, -4.0206614, -0.035087757, 2.9212925, 0.8955459, -4.7452006, 1.1755714, 1.9908776, 3.0042515, -4.2711177)
material_override = SubResource("ShaderMaterial_e6288")
mesh = SubResource("ArrayMesh_sf63q")
skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_am2a4")
[node name="rock21" type="MeshInstance3D" parent="." index="14" unique_id=369205689]
transform = Transform3D(2.7808597, 1.4774096, 3.845124, -4.0206614, -0.035087757, 2.9212925, 0.8955459, -4.7452006, 1.1755714, -4.7941666, 3.0042515, -4.4119973)
material_override = SubResource("ShaderMaterial_e6288")
mesh = SubResource("ArrayMesh_sf63q")
skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_am2a4")
[node name="rock22" type="MeshInstance3D" parent="." index="15" unique_id=406332215]
transform = Transform3D(2.7808597, 1.4774096, 3.845124, -4.0206614, -0.035087757, 2.9212925, 0.8955459, -4.7452006, 1.1755714, -4.748951, 3.0042515, 1.0487113)
material_override = SubResource("ShaderMaterial_e6288")
mesh = SubResource("ArrayMesh_sf63q")
skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_am2a4")
[node name="rock23" type="MeshInstance3D" parent="." index="16" unique_id=1395308700]
transform = Transform3D(2.7808597, 1.4774096, 3.845124, -4.0206614, -0.035087757, 2.9212925, 0.8955459, -4.7452006, 1.1755714, -4.718422, 3.0042515, 4.200246)
material_override = SubResource("ShaderMaterial_e6288")
mesh = SubResource("ArrayMesh_sf63q")
skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_am2a4")

View File

@@ -0,0 +1,343 @@
[gd_scene format=3 uid="uid://whamwjwv4nvb"]
[ext_resource type="PackedScene" uid="uid://bfws5cqrfe4vl" path="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O-E-S1.fbx" id="1_ni1kg"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_7iddd"]
[ext_resource type="Material" uid="uid://bu8wmlp0ffark" path="res://Materials/Treno3.tres" id="3_bfq6w"]
[ext_resource type="Material" uid="uid://d1xcve6aswe3d" path="res://Materials/TrainChunk.tres" id="4_xjoj5"]
[ext_resource type="Material" uid="uid://df1ghvw3d61x8" path="res://Materials/Treno1.tres" id="5_cseht"]
[ext_resource type="PackedScene" uid="uid://8jtrp8ckqf1a" path="res://Scenes/Chunk_Scene/House/House_muraglione.tscn" id="6_bfq6w"]
[ext_resource type="PackedScene" uid="uid://di7rijcgive7h" path="res://Scenes/Chunk_Scene/House/House_XL_2.tscn" id="7_xjoj5"]
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://Scenes/Test/Tree_V1.tscn" id="8_cseht"]
[ext_resource type="PackedScene" uid="uid://dyolu5m0lgqm2" path="res://Scenes/Test/ToriGate.tscn" id="9_r2ulb"]
[ext_resource type="PackedScene" uid="uid://d3loscamahf5y" path="res://Assets/Meshes/Chunk/Bioma_C/Chunk_C_E_1.fbx" id="10_xjoj5"]
[ext_resource type="PlaneMesh" uid="uid://djremrthsiasg" path="res://Assets/Meshes/Godrays.tres" id="11_jj1qw"]
[ext_resource type="Material" uid="uid://cwbxvmtih5wsc" path="res://Materials/GodRays.tres" id="12_iy6sr"]
[ext_resource type="ArrayMesh" uid="uid://d3m8muh7jxu7s" path="res://Assets/Meshes/gpdrays_planes.obj" id="13_e2rgj"]
[ext_resource type="Shader" uid="uid://dkmdtejrbks8n" path="res://Shaders/godrays.gdshader" id="14_k86oh"]
[sub_resource type="PrismMesh" id="PrismMesh_cseht"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_nlwx5"]
noise_type = 3
seed = 4
frequency = 0.0096
metadata/_preview_in_3d_space_ = true
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_eyx0r"]
noise = SubResource("FastNoiseLite_nlwx5")
seamless = true
[sub_resource type="ShaderMaterial" id="ShaderMaterial_avtss"]
render_priority = 0
shader = ExtResource("14_k86oh")
shader_parameter/noise_texture = SubResource("NoiseTexture2D_eyx0r")
shader_parameter/ray_color = Color(0.99999994, 0.782454, 0.2698755, 1)
shader_parameter/base_alpha = 1.0
shader_parameter/noise_stretching = 3.17200010317
shader_parameter/noise_scale = 1.0
shader_parameter/scrolling_speed = Vector2(0, 0.15)
shader_parameter/depth_softness = 1.0
shader_parameter/edge_fade_power = -0.02
shader_parameter/intensity_multiplier = 0.0290000013775
[sub_resource type="SphereMesh" id="SphereMesh_r2ulb"]
[sub_resource type="BoxShape3D" id="BoxShape3D_xjoj5"]
size = Vector3(60, 20, 60)
[node name="Chunck_M_N-O-E-S1" unique_id=515911998 instance=ExtResource("1_ni1kg")]
script = ExtResource("2_7iddd")
bioma_esclusivo = "Foresta"
[node name="Chunk_059" parent="." index="0" unique_id=2099343421]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
surface_material_override/0 = ExtResource("3_bfq6w")
[node name="Orto_Big_003" parent="." index="1" unique_id=1086972900]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
material_override = ExtResource("4_xjoj5")
[node name="Orto_Big_004" parent="." index="2" unique_id=802928204]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
material_override = ExtResource("4_xjoj5")
[node name="Orto_Big_005" parent="." index="3" unique_id=426331555]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
[node name="Orto_Big_006" parent="." index="4" unique_id=1448199652]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
material_override = ExtResource("5_cseht")
[node name="Orto_Big_007" parent="." index="5" unique_id=891591826]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
material_override = ExtResource("4_xjoj5")
[node name="Orto_Big_008" parent="." index="6" unique_id=1331556355]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
[node name="Orto_Big_009" parent="." index="7" unique_id=1202989086]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
material_override = ExtResource("5_cseht")
[node name="Orto_Big_010" parent="." index="8" unique_id=1821355826]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
material_override = ExtResource("4_xjoj5")
[node name="Orto_Big_011" parent="." index="9" unique_id=611082346]
transform = Transform3D(100, 0, 0, 0, -1.1920929e-05, 99.99999, 0, -99.99999, -1.1920929e-05, 8.139437, 8.974514, 0)
visible = false
[node name="House_Muraglione" parent="." index="10" unique_id=1060427946 instance=ExtResource("6_bfq6w")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.139437, 11.474514, 0)
[node name="House_XL_2" parent="." index="11" unique_id=855215282 instance=ExtResource("7_xjoj5")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 8.139437, 11.474514, 0)
[node name="TreeTest3" parent="." index="12" unique_id=838519336 instance=ExtResource("8_cseht")]
transform = Transform3D(1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, 16.50687, 11.120827, -8.674)
[node name="TreeTest4" parent="." index="13" unique_id=2104467252 instance=ExtResource("8_cseht")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.7, 0, -1.30904, 0, -1.0846266, 11.98444, 11.120827, -8.674)
[node name="TreeTest8" parent="." index="14" unique_id=556762603 instance=ExtResource("8_cseht")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.7, 0, -1.30904, 0, -1.0846266, 15.29665, 11.120827, 2.642168)
[node name="TreeTest9" parent="." index="15" unique_id=272349627 instance=ExtResource("8_cseht")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.7, 0, -1.30904, 0, -1.0846266, 15.29665, 11.120827, 2.642168)
[node name="TreeTest10" parent="." index="16" unique_id=1372512605 instance=ExtResource("8_cseht")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.7, 0, -1.30904, 0, -1.0846266, 15.29665, 11.120827, 2.642168)
[node name="TreeTest11" parent="." index="17" unique_id=1521292885 instance=ExtResource("8_cseht")]
transform = Transform3D(-1.6926715, 0, -0.1576801, 0, 1.6999998, 0, 0.1576801, 0, -1.6926715, 11.272255, 11.120827, 7.4240932)
[node name="TreeTest5" parent="." index="18" unique_id=261666989 instance=ExtResource("8_cseht")]
transform = Transform3D(0.6558488, 0, -1.5683951, 0, 1.7000003, 0, 1.5683951, 0, 0.6558488, 7.5114384, 11.120827, -8.523603)
[node name="TreeTest6" parent="." index="19" unique_id=593123699 instance=ExtResource("8_cseht")]
transform = Transform3D(0.74082774, 0, -1.53009, 0, 1.7000003, 0, 1.53009, 0, 0.74082774, 1.5470929, 11.120827, -8.501989)
[node name="TreeTest7" parent="." index="20" unique_id=2139029687 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -4.557086, 9.134398, 9.784409)
[node name="TreeTest12" parent="." index="21" unique_id=2136523512 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 0.020001411, 9.134398, 11.473827)
[node name="TreeTest13" parent="." index="22" unique_id=987961505 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 1.2638597, 9.1344, 15.598928)
[node name="TreeTest14" parent="." index="23" unique_id=1855541436 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 7.2638597, 7.4555235, 14.598928)
[node name="TreeTest15" parent="." index="24" unique_id=884798513 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 11.26386, 5.980712, 13.598928)
[node name="TreeTest16" parent="." index="25" unique_id=724211104 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 16.547192, 4.6727133, 11.249643)
[node name="TreeTest17" parent="." index="26" unique_id=1095953135 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 17.829838, 4.6727133, 5.003607)
[node name="TreeTest18" parent="." index="27" unique_id=563755063 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 18.829838, 4.6727133, 0.0036067963)
[node name="TreeTest19" parent="." index="28" unique_id=1274089936 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 18.986671, 4.6727133, -6.670269)
[node name="TreeTest20" parent="." index="29" unique_id=1642931007 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 15.986671, 4.6727133, -12.670269)
[node name="TreeTest21" parent="." index="30" unique_id=2006166908 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 10.674678, 4.6727133, -13.823563)
[node name="TreeTest22" parent="." index="31" unique_id=724885622 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, 4.145051, 4.6727133, -14.916243)
[node name="TreeTest23" parent="." index="32" unique_id=1495326107 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -2.2485428, 6.3891516, -13.528017)
[node name="TreeTest24" parent="." index="33" unique_id=120389784 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -7.248543, 6.3891516, -14.528017)
[node name="TreeTest25" parent="." index="34" unique_id=954063470 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -10.248543, 6.3891516, -11.528017)
[node name="TreeTest26" parent="." index="35" unique_id=1624347537 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -16.248543, 4.086112, -14.528017)
[node name="TreeTest27" parent="." index="36" unique_id=1103613914 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -24.248543, 0.30319595, -8.528017)
[node name="TreeTest28" parent="." index="37" unique_id=1556223941 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -20.248543, 2.2305303, -6.528017)
[node name="TreeTest29" parent="." index="38" unique_id=1980547211 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -15.419933, 3.7667584, -6.528017)
[node name="TreeTest30" parent="." index="39" unique_id=707421753 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -10.867249, 5.7147975, -6.528017)
[node name="TreeTest31" parent="." index="40" unique_id=333347209 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -6.022644, 7.112725, -6.528017)
[node name="TreeTest32" parent="." index="41" unique_id=1627918888 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -1.8654556, 9.105825, -6.528017)
[node name="TreeTest33" parent="." index="42" unique_id=1123067903 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -24.248543, 0.30319595, 5.069948)
[node name="TreeTest34" parent="." index="43" unique_id=255243684 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -20.248543, 2.2305303, 7.069948)
[node name="TreeTest35" parent="." index="44" unique_id=1239088643 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -15.419933, 3.7667584, 7.069948)
[node name="TreeTest36" parent="." index="45" unique_id=1629958630 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -10.867249, 5.7147975, 7.069948)
[node name="TreeTest37" parent="." index="46" unique_id=2010643284 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -6.022644, 7.112725, 7.069948)
[node name="TreeTest38" parent="." index="47" unique_id=1992657175 instance=ExtResource("8_cseht")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.7000003, 0, -1.5993869, 0, 0.5761617, -1.8654556, 9.105825, 7.069948)
[node name="Tori1" parent="." index="48" unique_id=1219093134 instance=ExtResource("9_r2ulb")]
transform = Transform3D(-3.365777e-08, 0, 0.77, 0, 0.77, 0, -0.77, 0, -3.365777e-08, -25.302626, -0.07465768, -0.18683958)
[node name="MeshInstance3D" type="MeshInstance3D" parent="Tori1" index="1" unique_id=1101421711]
transform = Transform3D(-5.5479194e-07, 1.1001648e-06, 18.895, 13.997503, 22.821705, 0, -12.692161, 25.168835, -8.259267e-07, 0, 3.55, 18.13)
mesh = SubResource("PrismMesh_cseht")
[node name="Godrays" type="MeshInstance3D" parent="Tori1" index="2" unique_id=1652837625]
transform = Transform3D(-1.3851255, -0.44760367, -3.7950785, 0, 1.0533296, -4.6454754, 1.0100508, -0.613818, -5.2043524, 19.836197, 26.866396, 22.948936)
mesh = ExtResource("11_jj1qw")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("12_iy6sr")
[node name="Godrays2" type="MeshInstance3D" parent="Tori1" index="3" unique_id=418241092]
transform = Transform3D(-1.3851255, -0.44760367, -3.7950785, 0, 1.0533296, -4.6454754, 1.0100508, -0.613818, -5.2043524, -1.2253921, 25.736933, 41.430435)
mesh = ExtResource("11_jj1qw")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("12_iy6sr")
[node name="Godrays3" type="MeshInstance3D" parent="Tori1" index="4" unique_id=1151685572]
transform = Transform3D(-1.3851255, -0.44760367, -3.7950785, 0, 1.0533296, -4.6454754, 1.0100508, -0.613818, -5.2043524, 11.500124, 28.802166, 35.267952)
mesh = ExtResource("11_jj1qw")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("12_iy6sr")
[node name="Godrays4" type="MeshInstance3D" parent="Tori1" index="5" unique_id=57553952]
transform = Transform3D(-1.3851255, -0.44760367, -3.7950785, 0, 1.0533296, -4.6454754, 1.0100508, -0.613818, -5.2043524, -8.470126, 28.802166, 35.267952)
mesh = ExtResource("11_jj1qw")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("12_iy6sr")
[node name="Godrays5" type="MeshInstance3D" parent="Tori1" index="6" unique_id=1223456562]
transform = Transform3D(-1.3851255, -0.44760367, -3.7950785, 0, 1.0533296, -4.6454754, 1.0100508, -0.613818, -5.2043524, 11.500125, 28.802166, 19.136524)
mesh = ExtResource("11_jj1qw")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("12_iy6sr")
[node name="Godrays6" type="MeshInstance3D" parent="Tori1" index="7" unique_id=2055844872]
transform = Transform3D(-1.3851255, -0.44760367, -3.7950785, 0, 1.0533296, -4.6454754, 1.0100508, -0.613818, -5.2043524, 11.500124, 28.802166, 35.267952)
mesh = ExtResource("11_jj1qw")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("12_iy6sr")
[node name="Godrays7" type="MeshInstance3D" parent="Tori1" index="8" unique_id=224557529]
transform = Transform3D(-1.3851255, -0.44760367, -3.7950785, 0, 1.0533296, -4.6454754, 1.0100508, -0.613818, -5.2043524, 4.442072, 23.320635, 35.267952)
mesh = ExtResource("11_jj1qw")
skeleton = NodePath("../..")
surface_material_override/0 = ExtResource("12_iy6sr")
[node name="GpdraysPlanes" type="MeshInstance3D" parent="Tori1" index="9" unique_id=171800045]
transform = Transform3D(-1.8993012, -0.4476037, -3.0410278, 0, 1.0533296, -3.7224576, 1.3849938, -0.61381805, -4.170291, 7.7202888, 19.369375, 31.829645)
mesh = ExtResource("13_e2rgj")
skeleton = NodePath("../..")
surface_material_override/0 = SubResource("ShaderMaterial_avtss")
[node name="Chunk_C_E_1" parent="." index="49" unique_id=1874739368 instance=ExtResource("10_xjoj5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 0, 0)
[node name="Chunk_C_E_8" parent="." index="50" unique_id=1172494774 instance=ExtResource("10_xjoj5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 0, 0)
[node name="Chunk_C_E_2" parent="." index="51" unique_id=2135188134 instance=ExtResource("10_xjoj5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 0, 20)
[node name="Chunk_C_E_3" parent="." index="52" unique_id=1033604427 instance=ExtResource("10_xjoj5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 0, 20)
[node name="Chunk_C_E_4" parent="." index="53" unique_id=1299582644 instance=ExtResource("10_xjoj5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 20)
[node name="Chunk_C_E_5" parent="." index="54" unique_id=431203449 instance=ExtResource("10_xjoj5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 0, -20)
[node name="Chunk_C_E_6" parent="." index="55" unique_id=1078872544 instance=ExtResource("10_xjoj5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 0, -20)
[node name="Chunk_C_E_7" parent="." index="56" unique_id=825771905 instance=ExtResource("10_xjoj5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -20)
[node name="MeshInstance3D" type="MeshInstance3D" parent="." index="57" unique_id=2120165377]
transform = Transform3D(42.845, 0, 0, 0, 22.78, 0, 0, 0, 45.86, 7.2098694, 0, 0)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." index="58" unique_id=4921159]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 25.575, -12.060661, -11.447714, 13.034334)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D12" type="MeshInstance3D" parent="." index="59" unique_id=687590251]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 25.575, -12.060661, -11.447714, -13.965666)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." index="60" unique_id=1134202011]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, -0.060661316, -9.293804, 12.339975)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D4" type="MeshInstance3D" parent="." index="61" unique_id=21627446]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, 9.421904, -9.293804, 12.9573765)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D5" type="MeshInstance3D" parent="." index="62" unique_id=1352185771]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, 16.318537, -12.403332, 10.381932)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D6" type="MeshInstance3D" parent="." index="63" unique_id=1140581206]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, 16.318537, -10.050489, 10.381932)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D7" type="MeshInstance3D" parent="." index="64" unique_id=1858551394]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, 17.318537, -10.050489, 0.38193226)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D8" type="MeshInstance3D" parent="." index="65" unique_id=1045903301]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, 16.384079, -10.337168, -10.554145)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D9" type="MeshInstance3D" parent="." index="66" unique_id=544227742]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, 8.947885, -9.431625, -12.030591)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D10" type="MeshInstance3D" parent="." index="67" unique_id=475159543]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, 8.947885, -9.431625, -12.030591)
mesh = SubResource("SphereMesh_r2ulb")
[node name="MeshInstance3D11" type="MeshInstance3D" parent="." index="68" unique_id=899902108]
transform = Transform3D(27.24, 0, 0, 0, 44.25, 0, 0, 0, 32.2, -2.7147493, -8.575956, -13.592451)
mesh = SubResource("SphereMesh_r2ulb")
[node name="StaticBody3D" type="StaticBody3D" parent="." index="69" unique_id=431285582]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" index="0" unique_id=2003643225]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0)
shape = SubResource("BoxShape3D_xjoj5")

View File

@@ -0,0 +1,81 @@
[gd_scene format=3 uid="uid://c7n5t213t5lag"]
[ext_resource type="PackedScene" uid="uid://bfws5cqrfe4vl" path="res://Assets/Meshes/Chunk/Bioma_C/Montagne/Chunck_M_N-O-E-S1.fbx" id="1_h7vkv"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_jvnom"]
[ext_resource type="Material" uid="uid://bu8wmlp0ffark" path="res://Materials/Treno3.tres" id="3_qgs43"]
[ext_resource type="Material" uid="uid://d1xcve6aswe3d" path="res://Materials/TrainChunk.tres" id="4_or8o2"]
[ext_resource type="Material" uid="uid://df1ghvw3d61x8" path="res://Materials/Treno1.tres" id="5_afsnq"]
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://Scenes/Test/Tree_V1.tscn" id="8_8yofa"]
[node name="Chunck_M_N-O-E-S1" unique_id=515911998 instance=ExtResource("1_h7vkv")]
script = ExtResource("2_jvnom")
altezza_nord = 1
altezza_est = 1
altezza_sud = 1
altezza_ovest = 1
[node name="Chunk_059" parent="." index="0" unique_id=2099343421]
surface_material_override/0 = ExtResource("3_qgs43")
[node name="Orto_Big_003" parent="." index="1" unique_id=1086972900]
visible = false
material_override = ExtResource("4_or8o2")
[node name="Orto_Big_004" parent="." index="2" unique_id=802928204]
visible = false
material_override = ExtResource("4_or8o2")
[node name="Orto_Big_006" parent="." index="4" unique_id=1448199652]
visible = false
material_override = ExtResource("5_afsnq")
[node name="Orto_Big_007" parent="." index="5" unique_id=891591826]
visible = false
material_override = ExtResource("4_or8o2")
[node name="Orto_Big_008" parent="." index="6" unique_id=1331556355]
visible = false
[node name="Orto_Big_009" parent="." index="7" unique_id=1202989086]
visible = false
material_override = ExtResource("5_afsnq")
[node name="Orto_Big_010" parent="." index="8" unique_id=1821355826]
visible = false
material_override = ExtResource("4_or8o2")
[node name="Orto_Big_011" parent="." index="9" unique_id=611082346]
visible = false
[node name="TreeTest3" parent="." index="10" unique_id=838519336 instance=ExtResource("8_8yofa")]
transform = Transform3D(1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, 8.367433, 2.1463137, -8.674)
[node name="TreeTest4" parent="." index="11" unique_id=2104467252 instance=ExtResource("8_8yofa")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.7471042, 0, -1.30904, 0, -1.0846266, 3.845004, 2.1463137, -8.674)
[node name="TreeTest13" parent="." index="12" unique_id=1786531826 instance=ExtResource("8_8yofa")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.3887827, 0, -1.30904, 0, -1.0846266, 3.0851727, 2.1463137, -2.2177863)
[node name="TreeTest8" parent="." index="13" unique_id=556762603 instance=ExtResource("8_8yofa")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.5268166, 0, -1.30904, 0, -1.0846266, 7.3651023, 2.1463137, 6.9064035)
[node name="TreeTest9" parent="." index="14" unique_id=272349627 instance=ExtResource("8_8yofa")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.5708817, 0, -1.30904, 0, -1.0846266, -0.5932164, 2.1463137, 2.650538)
[node name="TreeTest10" parent="." index="15" unique_id=1372512605 instance=ExtResource("8_8yofa")]
transform = Transform3D(-1.0846266, 0, 1.30904, 0, 1.7, 0, -1.30904, 0, -1.0846266, 7.1572127, 2.1463137, 2.642168)
[node name="TreeTest11" parent="." index="16" unique_id=1521292885 instance=ExtResource("8_8yofa")]
transform = Transform3D(-1.6926715, 0, -0.1576801, 0, 1.4780824, 0, 0.1576801, 0, -1.6926715, 3.1328192, 2.1463137, 7.4240932)
[node name="TreeTest5" parent="." index="17" unique_id=261666989 instance=ExtResource("8_8yofa")]
transform = Transform3D(0.6558488, 0, -1.5683951, 0, 1.5191344, 0, 1.5683951, 0, 0.6558488, -0.6279979, 2.1463137, -8.523603)
[node name="TreeTest6" parent="." index="18" unique_id=593123699 instance=ExtResource("8_8yofa")]
transform = Transform3D(0.74082774, 0, -1.53009, 0, 1.6671534, 0, 1.53009, 0, 0.74082774, -6.592344, 2.1463137, -8.501989)
[node name="TreeTest7" parent="." index="19" unique_id=2139029687 instance=ExtResource("8_8yofa")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.6299645, 0, -1.5993869, 0, 0.5761617, -7.4784756, 2.1463137, 4.902876)
[node name="TreeTest12" parent="." index="20" unique_id=826813369 instance=ExtResource("8_8yofa")]
transform = Transform3D(0.5761617, 0, 1.5993869, 0, 1.3017944, 0, -1.5993869, 0, 0.5761617, -7.88031, 2.1463137, -0.85537386)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,22 +1,27 @@
[gd_scene format=3 uid="uid://sybnjir2d05"] [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="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"] [ext_resource type="Texture2D" uid="uid://b7sqjhecpoyoh" path="res://Assets/Textures/Leaf_Test.png" id="3_d2h5c"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ta3rv"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ta3rv"]
render_priority = 0 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/base_color = Color(0.28235295, 0.6117647, 0.26666668, 1)
shader_parameter/alpha_texture = ExtResource("3_d2h5c") shader_parameter/alpha_texture = ExtResource("3_d2h5c")
shader_parameter/leaves_scale = 0.5 shader_parameter/leaves_scale = 0.275
shader_parameter/rotation_degrees = 0.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.85, 0.9, 0.95, 1)
shader_parameter/height_min = 0.0 shader_parameter/height_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.730000034675 shader_parameter/shadow_intensity = 0.730000034675
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.182000008645 shader_parameter/random_mix = 0.10000000475
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="PlaneMesh" id="PlaneMesh_x5qqn"] [sub_resource type="PlaneMesh" id="PlaneMesh_x5qqn"]
@@ -30,11 +35,16 @@ buffer = PackedFloat32Array(-0.6408246, -8.276528e-09, 0.7689895, 0.18645085, -1
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gkuoy"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_gkuoy"]
render_priority = 0 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/base_color = Color(0.3882353, 0.52156866, 0.20784314, 1)
shader_parameter/alpha_texture = ExtResource("3_d2h5c") shader_parameter/alpha_texture = ExtResource("3_d2h5c")
shader_parameter/leaves_scale = 0.5 shader_parameter/leaves_scale = 0.5
shader_parameter/rotation_degrees = 0.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.85, 0.9, 0.95, 1)
shader_parameter/height_min = 0.0 shader_parameter/height_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.730000034675 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="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 visible = false
cast_shadow = 0 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 visible = false
[node name="Cube_019" parent="." index="2" unique_id=919907353] [node name="Cube_019" parent="." index="2" unique_id=2064303696]
visible = false visible = false
[node name="Cube_020" parent="." index="3" unique_id=1585266842] [node name="Cube_020" parent="." index="3" unique_id=2115761534]
visible = false visible = false
[node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="." index="4" unique_id=1748438133] [node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="." index="4" unique_id=1748438133]

View File

@@ -1,22 +1,27 @@
[gd_scene format=3 uid="uid://623itnb41wew"] [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="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"] [ext_resource type="Texture2D" uid="uid://b7sqjhecpoyoh" path="res://Assets/Textures/Leaf_Test.png" id="3_i8eq2"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ta3rv"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ta3rv"]
render_priority = 0 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/base_color = Color(0.28235295, 0.6117647, 0.26666668, 1)
shader_parameter/alpha_texture = ExtResource("3_i8eq2") shader_parameter/alpha_texture = ExtResource("3_i8eq2")
shader_parameter/leaves_scale = 0.5 shader_parameter/leaves_scale = 0.26
shader_parameter/rotation_degrees = 0.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.85, 0.9, 0.95, 1)
shader_parameter/height_min = 0.0 shader_parameter/height_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.730000034675 shader_parameter/shadow_intensity = 0.730000034675
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.182000008645 shader_parameter/random_mix = 0.10000000475
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="PlaneMesh" id="PlaneMesh_x5qqn"] [sub_resource type="PlaneMesh" id="PlaneMesh_x5qqn"]
@@ -30,11 +35,16 @@ buffer = PackedFloat32Array(1.2331435e-08, -0.28211024, 0.44848275, 0.8891074, -
[sub_resource type="ShaderMaterial" id="ShaderMaterial_i8eq2"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_i8eq2"]
render_priority = 0 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/base_color = Color(0.3882353, 0.52156866, 0.20784314, 1)
shader_parameter/alpha_texture = ExtResource("3_i8eq2") shader_parameter/alpha_texture = ExtResource("3_i8eq2")
shader_parameter/leaves_scale = 0.5 shader_parameter/leaves_scale = 0.5
shader_parameter/rotation_degrees = 0.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.85, 0.9, 0.95, 1)
shader_parameter/height_min = 0.0 shader_parameter/height_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.730000034675 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="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 visible = false
cast_shadow = 0 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 visible = false
[node name="Cube_019" parent="." index="2" unique_id=919907353] [node name="Cube_019" parent="." index="2" unique_id=2064303696]
visible = false visible = false
[node name="Cube_020" parent="." index="3" unique_id=1585266842] [node name="Cube_020" parent="." index="3" unique_id=2115761534]
visible = false visible = false
[node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="." index="4" unique_id=1748438133] [node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="." index="4" unique_id=1748438133]

File diff suppressed because one or more lines are too long

View File

@@ -6,17 +6,29 @@
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="3_eyx8o"] [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="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="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="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="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://sybnjir2d05" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn" id="6_8ms8u"]
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="6_11318"]
[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://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="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://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="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="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://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"] [ext_resource type="PackedScene" uid="uid://mj15bepbgy02" path="res://Scenes/house_test_4.tscn" id="18_26pld"]
[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"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ofhgo"]
resource_name = "Material" resource_name = "Material"
@@ -56,22 +68,64 @@ _surfaces = [{
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_h7yuw") 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"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_15ugy"]
albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1) albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1)
albedo_texture = ExtResource("3_odndq") albedo_texture = ExtResource("3_odndq")
uv1_scale = Vector3(1.845, 2.325, 1) uv1_scale = Vector3(1.845, 2.325, 1)
uv1_offset = Vector3(-0.335, 0, 0) uv1_offset = Vector3(-0.335, 0, 0)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vxc6e"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_rhpq8"]
albedo_color = Color(0.19607843, 0.6117647, 0.26666668, 1) render_priority = 0
shader = ExtResource("4_11318")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_raxwl"]
render_priority = 0
shader = ExtResource("6_11318")
shader_parameter/albedo_color = Color(0.33333334, 0.3764706, 0.1882353, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.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)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_odndq"]
render_priority = 0 render_priority = 0
shader = ExtResource("4_bp8uq") shader = ExtResource("8_raxwl")
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = true
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
shader_parameter/alpha_texture = ExtResource("5_xlq82") shader_parameter/alpha_texture = ExtResource("5_xlq82")
shader_parameter/leaves_scale = 0.79 shader_parameter/leaves_scale = 0.79
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
@@ -82,26 +136,36 @@ shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bp8uq"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_bp8uq"]
render_priority = 0 render_priority = 0
shader = ExtResource("4_bp8uq") shader = ExtResource("8_raxwl")
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = true
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
shader_parameter/alpha_texture = ExtResource("5_xlq82") shader_parameter/alpha_texture = ExtResource("5_xlq82")
shader_parameter/leaves_scale = 0.7 shader_parameter/leaves_scale = 0.7
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
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.3230000153425 shader_parameter/random_mix = 0.0530000025175
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xlq82"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_xlq82"]
render_priority = 0 render_priority = 0
shader = ExtResource("4_bp8uq") shader = ExtResource("8_raxwl")
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = true
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
shader_parameter/alpha_texture = ExtResource("5_xlq82") shader_parameter/alpha_texture = ExtResource("5_xlq82")
shader_parameter/leaves_scale = 0.7 shader_parameter/leaves_scale = 0.7
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
@@ -152,11 +216,16 @@ shadow_mesh = SubResource("ArrayMesh_gwoio")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gpw8b"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_gpw8b"]
render_priority = 0 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/base_color = Color(0.43529412, 0.4627451, 0.08235294, 1)
shader_parameter/alpha_texture = ExtResource("5_xlq82") shader_parameter/alpha_texture = ExtResource("5_xlq82")
shader_parameter/leaves_scale = 0.555 shader_parameter/leaves_scale = 0.555
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
@@ -183,30 +252,36 @@ ovest = true
[node name="Chunk_002" parent="." index="0" unique_id=1455965802] [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) 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_override = ExtResource("2_xlq82")
material_overlay = SubResource("ShaderMaterial_e6du4")
[node name="Chunk_005" type="MeshInstance3D" parent="." index="1" unique_id=345649136] [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) 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_override = ExtResource("2_xlq82")
material_overlay = SubResource("ShaderMaterial_byjwq")
mesh = SubResource("ArrayMesh_s4u17") mesh = SubResource("ArrayMesh_s4u17")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Chunk_007" type="MeshInstance3D" parent="." index="2" unique_id=1021549662] [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) 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_override = ExtResource("2_xlq82")
material_overlay = SubResource("ShaderMaterial_gd3hq")
mesh = SubResource("ArrayMesh_s4u17") mesh = SubResource("ArrayMesh_s4u17")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Chunk_006" type="MeshInstance3D" parent="." index="3" unique_id=1766076384] [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) 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_override = SubResource("StandardMaterial3D_15ugy")
material_overlay = SubResource("ShaderMaterial_rhpq8")
mesh = SubResource("ArrayMesh_s4u17") mesh = SubResource("ArrayMesh_s4u17")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Chunk_004" parent="." index="4" unique_id=2103650482] [node name="Chunk_004" parent="." index="4" unique_id=2103650482]
material_override = SubResource("StandardMaterial3D_vxc6e") material_override = SubResource("ShaderMaterial_raxwl")
material_overlay = SubResource("ShaderMaterial_hq330")
[node name="Chunk_038" parent="." index="5" unique_id=476922148] [node name="Chunk_038" parent="." index="5" unique_id=476922148]
material_override = ExtResource("2_xlq82") material_override = ExtResource("2_xlq82")
material_overlay = SubResource("ShaderMaterial_l2fy1")
[node name="Cube_016" parent="." index="6" unique_id=117542775] [node name="Cube_016" parent="." index="6" unique_id=117542775]
visible = false visible = false
@@ -241,6 +316,12 @@ transform = Transform3D(0.6122072, 0, 0, 0, 1, 0, 0, 0, 0.6007669, -5.700036, 0.
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.18730783, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.18730783, 0)
material_override = SubResource("ShaderMaterial_odndq") material_override = SubResource("ShaderMaterial_odndq")
[node name="MultiMeshInstance3D2" parent="Grass4" index="5" unique_id=135312272]
visible = false
[node name="MultiMeshInstance3D3" parent="Grass4" index="6" unique_id=404396556]
visible = false
[node name="Grass2" parent="." index="15" unique_id=560220625 instance=ExtResource("3_eyx8o")] [node name="Grass2" parent="." index="15" unique_id=560220625 instance=ExtResource("3_eyx8o")]
transform = Transform3D(0.8395087, 0, 0, 0, 1, 0, 0, 0, 0.61816335, -4.278, 0.17403081, -5.945) transform = Transform3D(0.8395087, 0, 0, 0, 1, 0, 0, 0, 0.61816335, -4.278, 0.17403081, -5.945)
@@ -299,7 +380,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.16766357, 0, 8.473844)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.168, 0, -5.1774583) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.168, 0, -5.1774583)
[node name="Test_Orto_Small" parent="." index="32" unique_id=1422441497 instance=ExtResource("9_8fc4d")] [node name="Test_Orto_Small" parent="." index="32" unique_id=1422441497 instance=ExtResource("9_8fc4d")]
transform = Transform3D(1.1251189, 0, 0, 0, 1, 0, 0, 0, 1.181135, -5.7598686, 0.028647423, 5.7964163) transform = Transform3D(1.1251189, 0, 0, 0, 1, 0, 0, 0, 1.181135, -5.7598686, 0.12304258, 5.7964163)
[node name="MSH_Staccionate2" parent="." index="33" unique_id=118332436 instance=ExtResource("9_aqvmj")] [node name="MSH_Staccionate2" parent="." index="33" unique_id=118332436 instance=ExtResource("9_aqvmj")]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0.75776386, 0, 9.171503) transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0.75776386, 0, 9.171503)
@@ -368,7 +449,7 @@ skeleton = NodePath("")
root_node = NodePath("../../MSH_Staccionate2") root_node = NodePath("../../MSH_Staccionate2")
[node name="Test_Orto_Big" parent="." index="34" unique_id=381322647 instance=ExtResource("11_is3ra")] [node name="Test_Orto_Big" parent="." index="34" unique_id=381322647 instance=ExtResource("11_is3ra")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.047774076, 0, -6.50916) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.047774076, 0.22578478, -6.50916)
[node name="MultiMeshInstance3D3" type="MultiMeshInstance3D" parent="Test_Orto_Big" index="14" unique_id=648845638] [node name="MultiMeshInstance3D3" type="MultiMeshInstance3D" parent="Test_Orto_Big" index="14" unique_id=648845638]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.8394834, 0, 0.85241556, -0.089152336) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.8394834, 0, 0.85241556, -0.089152336)
@@ -376,8 +457,8 @@ material_override = SubResource("ShaderMaterial_gpw8b")
cast_shadow = 0 cast_shadow = 0
multimesh = SubResource("MultiMesh_6bpc0") multimesh = SubResource("MultiMesh_6bpc0")
[node name="House_XL_1" parent="." index="35" unique_id=297136650 instance=ExtResource("16_15ugy")] [node name="HouseTest_4" parent="." index="35" unique_id=1727780766 instance=ExtResource("18_26pld")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.126238, 0, 5.834319) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.123956, 0, 5.567298)
[editable path="Grass4"] [editable path="Grass4"]
[editable path="Grass2"] [editable path="Grass2"]

View File

@@ -2,10 +2,11 @@
[ext_resource type="PackedScene" uid="uid://d3loscamahf5y" path="res://Assets/Meshes/Chunk/Bioma_C/Chunk_C_E_1.fbx" id="1_jpp2r"] [ext_resource type="PackedScene" uid="uid://d3loscamahf5y" path="res://Assets/Meshes/Chunk/Bioma_C/Chunk_C_E_1.fbx" id="1_jpp2r"]
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_02kkq"] [ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_02kkq"]
[ext_resource type="Material" uid="uid://cit5uciejjoou" path="res://Materials/Grass_Chunk.tres" id="3_sf2c4"] [ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="3_wr3vc"]
[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://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://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="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="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://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"] [ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="9_s470o"]
@@ -13,6 +14,41 @@
[ext_resource type="PackedScene" uid="uid://4iye3qapad4y" path="res://Scenes/Test/Colonnina_Blockout.tscn" id="11_4n1py"] [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"] [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_sqcol"]
render_priority = 0
shader = ExtResource("3_wr3vc")
shader_parameter/albedo_color = Color(0.16470589, 0.50980395, 0.21960784, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.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)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[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"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0uwhb"]
resource_name = "Material" resource_name = "Material"
vertex_color_use_as_albedo = true vertex_color_use_as_albedo = true
@@ -51,6 +87,16 @@ _surfaces = [{
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_v3qhc") 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"] [sub_resource type="ArrayMesh" id="ArrayMesh_7ona5"]
_surfaces = [{ _surfaces = [{
"aabb": AABB(-0.015000002, -0.1, -0.00043503524, 0.030000005, 0.115, 0.0008700705), "aabb": AABB(-0.015000002, -0.1, -0.00043503524, 0.030000005, 0.115, 0.0008700705),
@@ -93,7 +139,7 @@ est = true
ovest = true ovest = true
[node name="Chunk_026" parent="." index="0" unique_id=1559745184] [node name="Chunk_026" parent="." index="0" unique_id=1559745184]
material_override = ExtResource("3_sf2c4") material_override = SubResource("ShaderMaterial_sqcol")
[node name="House_Muraglione" parent="." index="1" unique_id=1060427946 instance=ExtResource("4_lunjj")] [node name="House_Muraglione" parent="." index="1" unique_id=1060427946 instance=ExtResource("4_lunjj")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0, -0.891696) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 0, 0, -0.891696)
@@ -108,16 +154,25 @@ sud = false
[node name="Chunk_005" parent="Chunk_C_L_1" index="0" unique_id=1667835125] [node name="Chunk_005" parent="Chunk_C_L_1" index="0" unique_id=1667835125]
visible = false 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] [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) 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_override = ExtResource("7_y2p7p")
material_overlay = SubResource("ShaderMaterial_cvr4e")
mesh = SubResource("ArrayMesh_db63l") mesh = SubResource("ArrayMesh_db63l")
skeleton = NodePath("") 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] [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) 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_override = ExtResource("7_y2p7p")
material_overlay = SubResource("ShaderMaterial_8kcs0")
mesh = SubResource("ArrayMesh_vall4") mesh = SubResource("ArrayMesh_vall4")
skeleton = NodePath("") skeleton = NodePath("")

View File

@@ -4,9 +4,11 @@
[ext_resource type="Script" uid="uid://byluxssk112ca" path="res://Scripts/info_chunk.gd" id="2_5cl6b"] [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="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="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="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="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://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="6_xt73x"]
[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="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://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"] [ext_resource type="PackedScene" uid="uid://sybnjir2d05" path="res://Scenes/Chunk_Scene/BordiSentiero/Bordi_sentiero_AngoloEsterno.tscn" id="10_flfvy"]
@@ -15,7 +17,17 @@
[ext_resource type="PackedScene" uid="uid://igbtt2ypx0ks" path="res://Scenes/Chunk_Scene/Prop/Staccionate.tscn" id="14_sg641"] [ext_resource type="PackedScene" uid="uid://igbtt2ypx0ks" path="res://Scenes/Chunk_Scene/Prop/Staccionate.tscn" id="14_sg641"]
[ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://Materials/Staccionata.tres" id="15_u5vqi"] [ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://Materials/Staccionata.tres" id="15_u5vqi"]
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://Scenes/Test/Tree_V1.tscn" id="16_w82ua"] [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"] [ext_resource type="PackedScene" uid="uid://mj15bepbgy02" path="res://Scenes/house_test_4.tscn" id="17_r7got"]
[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"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ofhgo"]
resource_name = "Material" resource_name = "Material"
@@ -55,58 +67,110 @@ _surfaces = [{
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_h7yuw") 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"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_15ugy"]
albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1) albedo_color = Color(0.9811998, 0.8347986, 0.569528, 1)
albedo_texture = ExtResource("4_g8efw") albedo_texture = ExtResource("4_g8efw")
uv1_scale = Vector3(1.845, 2.325, 1) uv1_scale = Vector3(1.845, 2.325, 1)
uv1_offset = Vector3(-0.335, 0, 0) uv1_offset = Vector3(-0.335, 0, 0)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vxc6e"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_pfoxn"]
albedo_color = Color(0.19607843, 0.6117647, 0.26666668, 1) render_priority = 0
shader = ExtResource("4_r7got")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_i4sa2"]
render_priority = 0
shader = ExtResource("6_xt73x")
shader_parameter/albedo_color = Color(0.33333334, 0.3764706, 0.1882353, 1)
shader_parameter/use_texture = true
shader_parameter/uv_scale = Vector2(1, 1)
shader_parameter/palette_shift_y = 0.0
shader_parameter/gradient_start_y = 0.0
shader_parameter/gradient_end_y = 10.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)
shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0
[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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_odndq"]
render_priority = 0 render_priority = 0
shader = ExtResource("7_4ftiy") shader = ExtResource("8_r7got")
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = true
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
shader_parameter/alpha_texture = ExtResource("8_td1ds") shader_parameter/alpha_texture = ExtResource("8_td1ds")
shader_parameter/leaves_scale = 0.79 shader_parameter/leaves_scale = 0.79
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
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.3230000153425 shader_parameter/random_mix = 0.010000000475
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bp8uq"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_bp8uq"]
render_priority = 0 render_priority = 0
shader = ExtResource("7_4ftiy") shader = ExtResource("8_r7got")
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = true
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
shader_parameter/alpha_texture = ExtResource("8_td1ds") shader_parameter/alpha_texture = ExtResource("8_td1ds")
shader_parameter/leaves_scale = 0.7 shader_parameter/leaves_scale = 0.7
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
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.3230000153425 shader_parameter/random_mix = 0.010000000475
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xlq82"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_xlq82"]
render_priority = 0 render_priority = 0
shader = ExtResource("7_4ftiy") shader = ExtResource("8_r7got")
shader_parameter/base_color = Color(0.19607843, 0.6117647, 0.26666668, 1) shader_parameter/billboard_enabled = true
shader_parameter/wind_enabled = true
shader_parameter/base_color = Color(0.4862745, 0.54509807, 0.29803923, 1)
shader_parameter/alpha_texture = ExtResource("8_td1ds") shader_parameter/alpha_texture = ExtResource("8_td1ds")
shader_parameter/leaves_scale = 0.7 shader_parameter/leaves_scale = 0.7
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
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.3230000153425 shader_parameter/random_mix = 0.010000000475
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ac5is"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ac5is"]
@@ -157,30 +221,36 @@ ovest = true
[node name="Chunk_002" parent="." index="0" unique_id=1455965802] [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) 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_override = ExtResource("3_hj70d")
material_overlay = SubResource("ShaderMaterial_xt73x")
[node name="Chunk_005" type="MeshInstance3D" parent="." index="1" unique_id=345649136] [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) 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_override = ExtResource("3_hj70d")
material_overlay = SubResource("ShaderMaterial_jqp0n")
mesh = SubResource("ArrayMesh_s4u17") mesh = SubResource("ArrayMesh_s4u17")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Chunk_007" type="MeshInstance3D" parent="." index="2" unique_id=1021549662] [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) 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_override = ExtResource("3_hj70d")
material_overlay = SubResource("ShaderMaterial_gsd23")
mesh = SubResource("ArrayMesh_s4u17") mesh = SubResource("ArrayMesh_s4u17")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Chunk_006" type="MeshInstance3D" parent="." index="3" unique_id=1766076384] [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) 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_override = SubResource("StandardMaterial3D_15ugy")
material_overlay = SubResource("ShaderMaterial_pfoxn")
mesh = SubResource("ArrayMesh_s4u17") mesh = SubResource("ArrayMesh_s4u17")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Chunk_004" parent="." index="4" unique_id=2103650482] [node name="Chunk_004" parent="." index="4" unique_id=2103650482]
material_override = SubResource("StandardMaterial3D_vxc6e") material_override = SubResource("ShaderMaterial_i4sa2")
material_overlay = SubResource("ShaderMaterial_7wsa6")
[node name="Chunk_038" parent="." index="5" unique_id=476922148] [node name="Chunk_038" parent="." index="5" unique_id=476922148]
material_override = ExtResource("3_hj70d") material_override = ExtResource("3_hj70d")
material_overlay = SubResource("ShaderMaterial_6vw5y")
[node name="Cube_016" parent="." index="6" unique_id=117542775] [node name="Cube_016" parent="." index="6" unique_id=117542775]
visible = false visible = false
@@ -338,30 +408,30 @@ skeleton = NodePath("")
[node name="AnimationPlayer" parent="MSH_Staccionate2" index="13" unique_id=929358565] [node name="AnimationPlayer" parent="MSH_Staccionate2" index="13" unique_id=929358565]
root_node = NodePath("../../MSH_Staccionate2") root_node = NodePath("../../MSH_Staccionate2")
[node name="House_XL_1" parent="." index="33" unique_id=297136650 instance=ExtResource("17_j3hnw")] [node name="TreeTest3" parent="." index="33" unique_id=838519336 instance=ExtResource("16_w82ua")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.126238, 0, 5.834319)
[node name="TreeTest3" parent="." index="34" unique_id=838519336 instance=ExtResource("16_w82ua")]
transform = Transform3D(1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, -3.6622314, 0, 3.5609741) transform = Transform3D(1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, -3.6622314, 0, 3.5609741)
[node name="TreeTest9" parent="." index="35" unique_id=1006041337 instance=ExtResource("16_w82ua")] [node name="TreeTest9" parent="." index="34" unique_id=1006041337 instance=ExtResource("16_w82ua")]
transform = Transform3D(-0.28119546, 0, -1.6765828, 0, 1.7000003, 0, 1.6765828, 0, -0.28119546, -7.0600586, 0, 6.015869) transform = Transform3D(-0.28119546, 0, -1.6765828, 0, 1.7000003, 0, 1.6765828, 0, -0.28119546, -7.0600586, 0, 6.015869)
[node name="TreeTest4" parent="." index="36" unique_id=47639112 instance=ExtResource("16_w82ua")] [node name="TreeTest4" parent="." index="35" unique_id=47639112 instance=ExtResource("16_w82ua")]
transform = Transform3D(0.97529876, 0, -1.3924055, 0, 1.7000003, 0, 1.3924055, 0, 0.97529876, -6, 0, -6) transform = Transform3D(0.97529876, 0, -1.3924055, 0, 1.7000003, 0, 1.3924055, 0, 0.97529876, -6, 0, -6)
[node name="TreeTest5" parent="." index="37" unique_id=905854037 instance=ExtResource("16_w82ua")] [node name="TreeTest5" parent="." index="36" unique_id=905854037 instance=ExtResource("16_w82ua")]
transform = Transform3D(1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, 0, 0, -6) transform = Transform3D(1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, 0, 0, -6)
[node name="TreeTest6" parent="." index="38" unique_id=591576332 instance=ExtResource("16_w82ua")] [node name="TreeTest6" parent="." index="37" unique_id=591576332 instance=ExtResource("16_w82ua")]
transform = Transform3D(1.5321528, 0, 0.7365521, 0, 1.7000003, 0, -0.7365521, 0, 1.5321528, 6, 0, -5) transform = Transform3D(1.5321528, 0, 0.7365521, 0, 1.7000003, 0, -0.7365521, 0, 1.5321528, 6, 0, -5)
[node name="TreeTest7" parent="." index="39" unique_id=124591746 instance=ExtResource("16_w82ua")] [node name="TreeTest7" parent="." index="38" unique_id=124591746 instance=ExtResource("16_w82ua")]
transform = Transform3D(1.5184779, 0, 0.7643459, 0, 2.2099998, 0, -0.7643459, 0, 1.5184779, 4, 0, -9) transform = Transform3D(1.5184779, 0, 0.7643459, 0, 2.2099998, 0, -0.7643459, 0, 1.5184779, 4, 0, -9)
[node name="TreeTest8" parent="." index="40" unique_id=1044651283 instance=ExtResource("16_w82ua")] [node name="TreeTest8" parent="." index="39" unique_id=1044651283 instance=ExtResource("16_w82ua")]
transform = Transform3D(1.1937449, 0, 1.0893248, 0, 1.768, 0, -1.210361, 0, 1.0743704, -2, 0, -9) transform = Transform3D(1.1937449, 0, 1.0893248, 0, 1.768, 0, -1.210361, 0, 1.0743704, -2, 0, -9)
[node name="HouseTest_4" parent="." index="40" unique_id=1727780766 instance=ExtResource("17_r7got")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.7327065, 0, 5.388262)
[editable path="Grass4"] [editable path="Grass4"]
[editable path="Grass2"] [editable path="Grass2"]
[editable path="Grass6"] [editable path="Grass6"]

View File

@@ -1,11 +1,18 @@
[gd_scene format=3 uid="uid://dutvq3oy1ni7c"] [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="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://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"] [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="House_XL_1" unique_id=297136650 instance=ExtResource("1_ixasg")]
[node name="Cube_188" parent="." index="0" unique_id=389179127] [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/0 = ExtResource("2_bjrfw")
surface_material_override/1 = ExtResource("3_kj03q") surface_material_override/1 = ExtResource("3_kj03q")

View File

@@ -2,10 +2,32 @@
[ext_resource type="PackedScene" uid="uid://dx3rxahad0ilo" path="res://Assets/Meshes/House/House_XL_4.fbx" id="1_r3art"] [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="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"] [ext_resource type="Material" uid="uid://dbmyfi5t0yfy" path="res://Materials/House_Emissiv.tres" id="3_n3fsy"]
[sub_resource type="Gradient" id="Gradient_n4qy2"]
offsets = PackedFloat32Array(0.9980237, 1)
colors = PackedColorArray(0, 0, 0, 0.5882353, 0, 0, 0, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_wanxj"]
gradient = SubResource("Gradient_n4qy2")
fill = 2
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(0.9017094, 0.12820514)
[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" unique_id=1350238174 instance=ExtResource("1_r3art")]
[node name="House_XL_4" parent="." index="0" unique_id=479839665] [node name="Shadow" type="Decal" parent="." index="0" unique_id=705347391]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.15501308)
size = Vector3(9, 0.5, 9)
texture_albedo = SubResource("GradientTexture2D_wanxj")
[node name="House_XL_4" parent="." index="1" unique_id=479839665]
material_overlay = SubResource("ShaderMaterial_fprka")
surface_material_override/0 = ExtResource("2_mswf7") surface_material_override/0 = ExtResource("2_mswf7")
surface_material_override/1 = ExtResource("3_n3fsy") surface_material_override/1 = ExtResource("3_n3fsy")

View File

@@ -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="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="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" unique_id=1060427946 instance=ExtResource("1_m4ocs")]
[node name="House_Muraglione" parent="." index="0" unique_id=1620072056] [node name="House_Muraglione" parent="." index="0" unique_id=1620072056]
material_overlay = SubResource("ShaderMaterial_bdf8l")
surface_material_override/0 = ExtResource("2_7l0dg") surface_material_override/0 = ExtResource("2_7l0dg")

File diff suppressed because one or more lines are too long

View File

@@ -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="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="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://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="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="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"] [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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_og5cy"]
render_priority = 0 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/base_color = Color(0.6910962, 0.46426672, 0.08072326, 1)
shader_parameter/alpha_texture = ExtResource("6_rnryk") shader_parameter/alpha_texture = ExtResource("6_rnryk")
shader_parameter/leaves_scale = 1.0 shader_parameter/leaves_scale = 1.0
shader_parameter/rotation_degrees = 180.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 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="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 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_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") material_override = ExtResource("2_atyaj")
[node name="Test_BordiSentiero" parent="." index="3" unique_id=1395614268 instance=ExtResource("3_el0wm")] [node name="Test_BordiSentiero" parent="." index="3" unique_id=1395614268 instance=ExtResource("3_el0wm")]

View File

@@ -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="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="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"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1jtrr"]
resource_name = "lambert48" resource_name = "lambert48"
@@ -43,23 +59,32 @@ _surfaces = [{
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_d4r25") 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")] [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) 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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0037837923, 0, 0)
material_override = ExtResource("2_2tbpd") 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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.99746555, 0, 0)
material_override = ExtResource("2_2tbpd") material_override = ExtResource("2_2tbpd")
material_overlay = SubResource("ShaderMaterial_5qj1r")
[node name="MSH_Staccioanta_4" type="MeshInstance3D" parent="." index="2" unique_id=997680864] [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_override = ExtResource("2_2tbpd")
material_overlay = SubResource("ShaderMaterial_xsxbg")
mesh = SubResource("ArrayMesh_h5j06") mesh = SubResource("ArrayMesh_h5j06")
skeleton = NodePath("") 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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.0379614, 0, 0)
material_override = ExtResource("2_2tbpd") material_override = ExtResource("2_2tbpd")
material_overlay = SubResource("ShaderMaterial_p4545")

View File

@@ -3,10 +3,12 @@
[ext_resource type="Script" uid="uid://dcaxomfkulrig" path="res://Scripts/Day_night_Cycle.gd" id="1_cr3ar"] [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://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://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="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="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"] [ext_resource type="Shader" uid="uid://l6rkqonic7dj" path="res://Shaders/Sky.gdshader" id="5_bedag"]
[ext_resource type="PackedScene" uid="uid://bvynwhkogurml" path="res://Godrays_Scene.tscn" id="5_gwrkm"] [ext_resource type="PackedScene" uid="uid://bvynwhkogurml" path="res://Godrays_Scene.tscn" id="5_gwrkm"]
[ext_resource type="Material" uid="uid://codq5gx71rj4o" path="res://Materials/Polvere atmosferica.tres" id="5_u10x4"]
[ext_resource type="FastNoiseLite" uid="uid://c0mtwrkptjcuw" path="res://Assets/Textures/Noise_Clouds.tres" id="6_00nhk"] [ext_resource type="FastNoiseLite" uid="uid://c0mtwrkptjcuw" path="res://Assets/Textures/Noise_Clouds.tres" id="6_00nhk"]
[ext_resource type="Texture2D" uid="uid://dxahudyvihk8b" path="res://Assets/Textures/Stars.png" id="6_jawsd"] [ext_resource type="Texture2D" uid="uid://dxahudyvihk8b" path="res://Assets/Textures/Stars.png" id="6_jawsd"]
[ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://Scripts/edge_detection_compositor.gd" id="7_4xv0h"] [ext_resource type="Script" uid="uid://brcimd12tx3dm" path="res://Scripts/edge_detection_compositor.gd" id="7_4xv0h"]
@@ -18,20 +20,25 @@
[ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://Materials/House.tres" id="9_bedag"] [ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://Materials/House.tres" id="9_bedag"]
[ext_resource type="Script" uid="uid://cagpbu4pg5s1y" path="res://Scripts/Binari.gd" id="9_isbua"] [ext_resource type="Script" uid="uid://cagpbu4pg5s1y" path="res://Scripts/Binari.gd" id="9_isbua"]
[ext_resource type="PackedScene" uid="uid://dvk3bytqn3m5s" path="res://Scenes/Test/Main_Train.tscn" id="10_ur7m6"] [ext_resource type="PackedScene" uid="uid://dvk3bytqn3m5s" path="res://Scenes/Test/Main_Train.tscn" id="10_ur7m6"]
[ext_resource type="PackedScene" uid="uid://botm0dqtr5whb" path="res://Scenes/Chunk_Scene/Chunk/Campagna/chunk_c_e_1.tscn" id="11_00nhk"]
[ext_resource type="PackedScene" uid="uid://bbrsmc2vxdcwq" path="res://Scenes/Test/fuoco_d'artificio_root.tscn" id="11_gwrkm"] [ext_resource type="PackedScene" uid="uid://bbrsmc2vxdcwq" path="res://Scenes/Test/fuoco_d'artificio_root.tscn" id="11_gwrkm"]
[ext_resource type="Script" uid="uid://c02bewqxt2epg" path="res://Scripts/DatiBioma.gd" id="11_vpybn"]
[ext_resource type="PackedScene" uid="uid://qyml1s00773u" path="res://Scenes/Test/Rotaie_Blockout.tscn" id="12_nonqo"] [ext_resource type="PackedScene" uid="uid://qyml1s00773u" path="res://Scenes/Test/Rotaie_Blockout.tscn" id="12_nonqo"]
[ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="13_kwbnj"] [ext_resource type="Shader" uid="uid://co2jw3fnyc6aa" path="res://Shaders/tree_leaves.gdshader" id="13_kwbnj"]
[ext_resource type="Texture2D" uid="uid://bsabg0b27m7uw" path="res://Assets/Textures/Fuji.png" id="14_7j5hj"] [ext_resource type="Texture2D" uid="uid://bsabg0b27m7uw" path="res://Assets/Textures/Fuji.png" id="14_7j5hj"]
[ext_resource type="PackedScene" uid="uid://cpebna545ihfh" path="res://Scenes/Chunk_Scene/Chunk/Foresta/Chunk_F_L_2.tscn" id="15_4udcq"]
[ext_resource type="Texture2D" uid="uid://m06lpixnkjdd" path="res://Assets/Textures/Fuji_1.png" id="15_u10x4"] [ext_resource type="Texture2D" uid="uid://m06lpixnkjdd" path="res://Assets/Textures/Fuji_1.png" id="15_u10x4"]
[ext_resource type="Texture2D" uid="uid://bl08clorvfthf" path="res://Assets/Textures/Fuji_2.png" id="16_l1dl0"] [ext_resource type="Texture2D" uid="uid://bl08clorvfthf" path="res://Assets/Textures/Fuji_2.png" id="16_l1dl0"]
[ext_resource type="PackedScene" uid="uid://bi12g5nj421jv" path="res://Scenes/Chunk_Scene/Chunk/Foresta/chunk_F_e_1.tscn" id="16_vpybn"]
[ext_resource type="ArrayMesh" uid="uid://dp5c3nqdvnsv0" path="res://Assets/Test/Demo/flower.res" id="17_kjb07"] [ext_resource type="ArrayMesh" uid="uid://dp5c3nqdvnsv0" path="res://Assets/Test/Demo/flower.res" id="17_kjb07"]
[ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://Scenes/Test/Tree_V1.tscn" id="18_on20a"] [ext_resource type="PackedScene" uid="uid://d12t04rs47jq3" path="res://Scenes/Test/Tree_V1.tscn" id="18_on20a"]
[ext_resource type="Shader" uid="uid://cglb64vpwpgpu" path="res://Shaders/Water2.gdshader" id="19_6k3cw"] [ext_resource type="Shader" uid="uid://cglb64vpwpgpu" path="res://Shaders/Water2.gdshader" id="19_6k3cw"]
[ext_resource type="PackedScene" uid="uid://cpebna545ihfh" path="res://Scenes/Chunk_Scene/Chunk/Foresta/Chunk_F_L_2.tscn" id="20_00nhk"]
[ext_resource type="PackedScene" uid="uid://bp5gnv0noxcpc" path="res://Scenes/Test/Scogliera_Blockout.tscn" id="20_16mw0"] [ext_resource type="PackedScene" uid="uid://bp5gnv0noxcpc" path="res://Scenes/Test/Scogliera_Blockout.tscn" id="20_16mw0"]
[ext_resource type="TubeTrailMesh" uid="uid://2wmnftxwg8wt" path="res://Assets/Meshes/Wind.tres" id="21_l1dl0"]
[ext_resource type="PackedScene" uid="uid://dk85mk0hapngf" path="res://Assets/Test/rock2.glb" id="21_qdxup"] [ext_resource type="PackedScene" uid="uid://dk85mk0hapngf" path="res://Assets/Test/rock2.glb" id="21_qdxup"]
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="22_tbvi6"] [ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="22_tbvi6"]
[ext_resource type="Texture2D" uid="uid://8sdgkykyg5l5" path="res://Assets/Textures/rock_color.png" id="23_4udcq"] [ext_resource type="Texture2D" uid="uid://8sdgkykyg5l5" path="res://Assets/Textures/rock_color.png" id="23_4udcq"]
[ext_resource type="Shader" uid="uid://b164wpqylv5fo" path="res://Shaders/Fog.gdshader" id="23_u10x4"]
[ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="24_vj0n5"] [ext_resource type="PackedScene" uid="uid://jj15telqu3rp" path="res://Scenes/Test/Grass_Test.tscn" id="24_vj0n5"]
[ext_resource type="PackedScene" uid="uid://bioksfn7mydfa" path="res://Assets/Test/Demo/Tree_V2.glb" id="25_00nhk"] [ext_resource type="PackedScene" uid="uid://bioksfn7mydfa" path="res://Assets/Test/Demo/Tree_V2.glb" id="25_00nhk"]
[ext_resource type="Texture2D" uid="uid://cy7kh4dvdd34v" path="res://Assets/Textures/tree_bark.png" id="26_vpybn"] [ext_resource type="Texture2D" uid="uid://cy7kh4dvdd34v" path="res://Assets/Textures/tree_bark.png" id="26_vpybn"]
@@ -45,6 +52,9 @@
[ext_resource type="PackedScene" uid="uid://jqqiendhdgqq" path="res://Scenes/Test/Test_Chunk_Rettilineo.tscn" id="33_mvcuv"] [ext_resource type="PackedScene" uid="uid://jqqiendhdgqq" path="res://Scenes/Test/Test_Chunk_Rettilineo.tscn" id="33_mvcuv"]
[ext_resource type="PackedScene" uid="uid://bhcut7ndtdo2w" path="res://Assets/Test/SK_Mannequin.FBX" id="34_3nw1o"] [ext_resource type="PackedScene" uid="uid://bhcut7ndtdo2w" path="res://Assets/Test/SK_Mannequin.FBX" id="34_3nw1o"]
[ext_resource type="PackedScene" uid="uid://xebpudhewwwj" path="res://Scenes/Chunk_Scene/Chunk/Campagna/Chunk_C_L_2.tscn" id="35_n33lw"] [ext_resource type="PackedScene" uid="uid://xebpudhewwwj" path="res://Scenes/Chunk_Scene/Chunk/Campagna/Chunk_C_L_2.tscn" id="35_n33lw"]
[ext_resource type="Shader" uid="uid://bl1dwh2k06yy5" path="res://Shaders/Blur.gdshader" id="46_nonqo"]
[ext_resource type="Shader" uid="uid://bttmyh64kihyr" path="res://Shaders/Nebbia2D.gdshader" id="47_7j5hj"]
[ext_resource type="SphereMesh" uid="uid://d008b0x0810qh" path="res://Assets/Meshes/Bush.tres" id="55_qdxup"]
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_10fbe"] [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_10fbe"]
noise = ExtResource("6_00nhk") noise = ExtResource("6_00nhk")
@@ -58,11 +68,11 @@ shader_parameter/night_intensity = 0.0
shader_parameter/cloud_noise = SubResource("NoiseTexture2D_10fbe") shader_parameter/cloud_noise = SubResource("NoiseTexture2D_10fbe")
shader_parameter/sun_color = Color(1, 1, 1, 1) shader_parameter/sun_color = Color(1, 1, 1, 1)
shader_parameter/cloud_center_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_direction = Vector2(0.05, 0.02)
shader_parameter/cloud_speed = 0.1 shader_parameter/cloud_speed = 0.1
shader_parameter/cloud_scale = 0.5 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_thickness = 0.406000019285
shader_parameter/cloud_edge_softness = 0.0 shader_parameter/cloud_edge_softness = 0.0
shader_parameter/star_density = 1500.0 shader_parameter/star_density = 1500.0
@@ -84,19 +94,16 @@ background_mode = 2
sky = SubResource("Sky_dhgqn") sky = SubResource("Sky_dhgqn")
ambient_light_source = 2 ambient_light_source = 2
tonemap_mode = 2 tonemap_mode = 2
tonemap_exposure = 1.2
ssr_enabled = true
ssao_enabled = true ssao_enabled = true
ssil_enabled = true ssil_enabled = true
ssil_radius = 8.61
glow_enabled = true glow_enabled = true
glow_normalized = true glow_intensity = 0.4
glow_bloom = 0.4 glow_strength = 0.65
glow_bloom = 1.0
fog_enabled = true fog_enabled = true
fog_mode = 1 fog_mode = 1
fog_density = 0.2 fog_density = 0.05
fog_aerial_perspective = 0.97 fog_sky_affect = 0.0
fog_depth_begin = 0.0
[sub_resource type="CompositorEffect" id="CompositorEffect_vufuq"] [sub_resource type="CompositorEffect" id="CompositorEffect_vufuq"]
resource_local_to_scene = false resource_local_to_scene = false
@@ -116,6 +123,18 @@ compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_vufu
[sub_resource type="QuadMesh" id="QuadMesh_00nhk"] [sub_resource type="QuadMesh" id="QuadMesh_00nhk"]
size = Vector2(2, 2) size = Vector2(2, 2)
[sub_resource type="Resource" id="Resource_5lko7"]
script = ExtResource("11_vpybn")
nome_bioma = "Campagna"
chunk_disponibili = Array[PackedScene]([ExtResource("11_00nhk"), ExtResource("35_n33lw")])
metadata/_custom_type_script = "uid://c02bewqxt2epg"
[sub_resource type="Resource" id="Resource_j2rq4"]
script = ExtResource("11_vpybn")
nome_bioma = "Foresta"
chunk_disponibili = Array[PackedScene]([ExtResource("16_vpybn"), ExtResource("15_4udcq")])
metadata/_custom_type_script = "uid://c02bewqxt2epg"
[sub_resource type="Curve" id="Curve_o35ae"] [sub_resource type="Curve" id="Curve_o35ae"]
_limits = [-360.0, 360.0, 0.0, 1.0] _limits = [-360.0, 360.0, 0.0, 1.0]
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
@@ -215,35 +234,137 @@ material = SubResource("ShaderMaterial_gpe07")
subdivide_depth = 3 subdivide_depth = 3
orientation = 1 orientation = 1
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_qqnw7"] [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_l1dl0"]
particle_flag_align_y = true particle_flag_align_y = true
emission_shape_scale = Vector3(70, 70, 70) emission_shape_scale = Vector3(50, 10, 50)
emission_shape = 3 emission_shape = 3
emission_box_extents = Vector3(1, 1, 1) emission_box_extents = Vector3(1, 1, 1)
direction = Vector3(0, -1, 0) direction = Vector3(0, -1, 0)
spread = 0.0 spread = 0.0
initial_velocity_min = 15.0 initial_velocity_min = 10.0
initial_velocity_max = 20.0 initial_velocity_max = 25.0
collision_mode = 2 gravity = Vector3(0, -9, 0)
sub_emitter_mode = 3
sub_emitter_amount_at_collision = 1 [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"] [sub_resource type="QuadMesh" id="QuadMesh_54p3t"]
material = ExtResource("3_4wepm") material = SubResource("StandardMaterial3D_kjb07")
size = Vector2(0.05, 1) size = Vector2(0.2, 0.2)
[sub_resource type="QuadMesh" id="QuadMesh_jfpsf"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xjipq"]
render_priority = 0
shader = ExtResource("13_kwbnj")
shader_parameter/billboard_enabled = false
shader_parameter/wind_enabled = false
shader_parameter/base_color = Color(0.21142942, 0.23515752, 0.20549765, 1)
shader_parameter/alpha_texture = ExtResource("16_l1dl0")
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
shader_parameter/highlight_intensity = 0.0
shader_parameter/light_steps = 1.0
shader_parameter/random_mix = 0.0
shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="PlaneMesh" id="PlaneMesh_gsfny"]
[sub_resource type="Gradient" id="Gradient_u10x4"]
offsets = PackedFloat32Array(0, 0.49127907, 1)
colors = PackedColorArray(0, 0, 0, 0, 1, 0.89900386, 0.37477228, 1, 1, 1, 1, 0)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_l1dl0"]
gradient = SubResource("Gradient_u10x4")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_kjb07"]
emission_shape = 3
emission_box_extents = Vector3(15, 3, 15)
gravity = Vector3(0, 0.2, 0)
color_ramp = SubResource("GradientTexture1D_l1dl0")
turbulence_enabled = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_on20a"]
transparency = 1
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
particles_anim_loop = false
[sub_resource type="QuadMesh" id="QuadMesh_6k3cw"]
material = SubResource("StandardMaterial3D_on20a")
size = Vector2(0.1, 0.1)
[sub_resource type="Gradient" id="Gradient_kjb07"]
offsets = PackedFloat32Array(0, 0.49709302, 1)
colors = PackedColorArray(0, 0, 0, 0, 1, 1, 1, 0.7647059, 1, 1, 1, 0)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_on20a"]
gradient = SubResource("Gradient_kjb07")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_6k3cw"]
lifetime_randomness = 0.5
emission_shape_scale = Vector3(5, 5, 5)
emission_shape = 3
emission_box_extents = Vector3(1, 1, 1)
direction = Vector3(0, 1, 0)
spread = 0.0
initial_velocity_min = 6.0
initial_velocity_max = 6.0
gravity = Vector3(0, 0, 0)
color_ramp = SubResource("GradientTexture1D_on20a")
[sub_resource type="Curve3D" id="Curve3D_bedag"] [sub_resource type="Curve3D" id="Curve3D_bedag"]
closed = true closed = true
bake_interval = 50.0 bake_interval = 150.82
_data = { _data = {
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, -4.372, 0, 140, 0, 0, 0, 0, 0, 0, -20.963, 0, 160, 0, 0, 0, 0, 0, 0, -40.62518, 0, 168.52754, 0, 0, 0, 0, 0, 0, -60, 0, 170, 0, 0, 0, 0, 0, 0, -80, 0, 170, 0, 0, 0, 0, 0, 0, -100, 0, 170, 0, 0, 0, 0, 0, 0, -120.42937, 0, 171.50279, 0, 0, 0, 0, 0, 0, -141.41747, 7.6293945e-06, 180.5982, 0, 0, 0, 0, 0, 0, -155.77005, 7.6293945e-06, 198.35184, 0, 0, 0, 0, 0, 0, -160.14105, 7.6293945e-06, 219.80951, 0, 0, 0, 0, 0, 0, -163.99007, 7.6293945e-06, 239.36005, 0, 0, 0, 0, 0, 0, -175.77509, 7.6293945e-06, 256.16028, 0, 0, 0, 0, 0, 0, -195.62283, 7.6293945e-06, 267.46912, 0, 0, 0, 0, 0, 0, -219.9999, 7.6293945e-06, 270.11758, 0, 0, 0, 0, 0, 0, -240, 0, 270.118, 0, 0, 0, 0, 0, 0, -260, 0, 270.118, 0, 0, 0, 0, 0, 0, -275.19666, 7.6293945e-06, 270.55228, 0, 0, 0, 0, 0, 0, -294.2925, 7.6293945e-06, 276.05307, 0, 0, 0, 0, 0, 0, -307.19006, 7.6293945e-06, 286.9095, 0, 0, 0, 0, 0, 0, -317.32443, 7.6293945e-06, 303.14682, 0, 0, 0, 0, 0, 0, -320, 0, 320, 0, 0, 0, 0, 0, 0, -320, 0, 340, 0, 0, 0, 0, 0, 0, -320, 0, 360, 0, 0, 0, 0, 0, 0, -320, 0, 380, 0, 0, 0, 0, 0, 0, -316.78876, 7.6293945e-06, 396.91193, 0, 0, 0, 0, 0, 0, -307.68207, 7.6293945e-06, 412.70596, 0, 0, 0, 0, 0, 0, -291.08273, 7.6293945e-06, 424.7491, 0, 0, 0, 0, 0, 0, -270, 0, 429.994, 0, 0, 0, 0, 0, 0, -250, 0, 429.994, 0, 0, 0, 0, 0, 0, -229.90146, 7.6293945e-06, 433.90823, 0, 0, 0, 0, 0, 0, -217.15442, 7.6293945e-06, 442.98242, 0, 0, 0, 0, 0, 0, -204.60803, 7.6293945e-06, 459.93704, 0, 0, 0, 0, 0, 0, -200, 0, 480, 0, 0, 0, 0, 0, 0, -200, 0, 500, 0, 0, 0, 0, 0, 0, -195.5338, 7.6293945e-06, 520.0368, 0, 0, 0, 0, 0, 0, -184.9173, 7.6293945e-06, 535.07776, 0, 0, 0, 0, 0, 0, -170.36423, 7.6293945e-06, 545.0799, 0, 0, 0, 0, 0, 0, -150.56184, 0, 549.8127, 0, 0, 0, 0, 0, 0, -130, 0, 550, 0, 0, 0, 0, 0, 0, -110, 0, 550, 0, 0, 0, 0, 0, 0, -90, 0, 550, 0, 0, 0, 0, 0, 0, -70, 0, 550, 0, 0, 0, 0, 0, 0, -50, 0, 550, 0, 0, 0, 0, 0, 0, -29.862535, 7.6293945e-06, 545.3371, 0, 0, 0, 0, 0, 0, -13.215244, 7.6293945e-06, 533.0626, 0, 0, 0, 0, 0, 0, -4.098665, 7.6293945e-06, 519.6814, 0, 0, 0, 0, 0, 0, -0.048213482, 7.6293945e-06, 500.107, 0, 0, 0, 0, 0, 0, 3.7920675, 7.6293945e-06, 480.64902, 0, 0, 0, 0, 0, 0, 13.513225, 7.6293945e-06, 465.9133, 0, 0, 0, 0, 0, 0, 29.76715, 7.6293945e-06, 454.41486, 0, 0, 0, 0, 0, 0, 49.711926, 7.6293945e-06, 450.12488, 0, 0, 0, 0, 0, 0, 70, 0, 450, 0, 0, 0, 0, 0, 0, 90, 0, 450, 0, 0, 0, 0, 0, 0, 110.055405, 7.6293945e-06, 445.42627, 0, 0, 0, 0, 0, 0, 126.975784, 7.6293945e-06, 432.8683, 0, 0, 0, 0, 0, 0, 136.95703, 7.6293945e-06, 417.5506, 0, 0, 0, 0, 0, 0, 140, 0, 400, 0, 0, 0, 0, 0, 0, 140, 0, 380, 0, 0, 0, 0, 0, 0, 140, 0, 360, 0, 0, 0, 0, 0, 0, 140, 0, 340, 0, 0, 0, 0, 0, 0, 140, 0, 320, 0, 0, 0, 0, 0, 0, 140, 0, 300, 0, 0, 0, 0, 0, 0, 140, 0, 280, 0, 0, 0, 0, 0, 0, 140, 0, 260, 0, 0, 0, 0, 0, 0, 140, 0, 240, 0, 0, 0, 0, 0, 0, 140, 0, 220, 0, 0, 0, 0, 0, 0, 140, 0, 200, 0, 0, 0, 0, 0, 0, 140, 0, 180, 0, 0, 0, 0, 0, 0, 140, 0, 160, 0, 0, 0, 0, 0, 0, 140, 0, 140, 0, 0, 0, 0, 0, 0, 140, 0, 120, 0, 0, 0, 0, 0, 0, 140, 0, 100, 0, 0, 0, 0, 0, 0, 140, 0, 80, 0, 0, 0, 0, 0, 0, 140, 0, 60, 0, 0, 0, 0, 0, 0, 140, 0, 40, 0, 0, 0, 0, 0, 0, 140, 0, 20, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 136.2151, 7.6293945e-06, -18.930761, 0, 0, 0, 0, 0, 0, 124.47424, 7.6293945e-06, -35.771675, 0, 0, 0, 0, 0, 0, 109.556854, 7.6293945e-06, -45.911987, 0, 0, 0, 0, 0, 0, 90, 0, -50, 0, 0, 0, 0, 0, 0, 70, 0, -50, 0, 0, 0, 0, 0, 0, 50, 0, -50, 0, 0, 0, 0, 0, 0, 30.626865, 7.6293945e-06, -46.35706, 0, 0, 0, 0, 0, 0, 14.519331, 7.6293945e-06, -35.468895, 0, 0, 0, 0, 0, 0, 3.52941, 7.6293945e-06, -19.590664), "points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, -4.372, 0, 140, 0, 0, 0, 0, 0, 0, -20.963, 0, 160, 0, 0, 0, 0, 0, 0, -40.62518, 0, 168.52754, 0, 0, 0, 0, 0, 0, -60, 0, 170, 0, 0, 0, 0, 0, 0, -80, 0, 170, 0, 0, 0, 0, 0, 0, -100, 0, 170, 0, 0, 0, 0, 0, 0, -120.42937, 0, 171.50279, 0, 0, 0, 0, 0, 0, -141.41747, 7.6293945e-06, 180.5982, 0, 0, 0, 0, 0, 0, -155.77005, 7.6293945e-06, 198.35184, 0, 0, 0, 0, 0, 0, -160.14105, 7.6293945e-06, 219.80951, 0, 0, 0, 0, 0, 0, -163.99007, 7.6293945e-06, 239.36005, 0, 0, 0, 0, 0, 0, -175.77509, 7.6293945e-06, 256.16028, 0, 0, 0, 0, 0, 0, -195.62283, 7.6293945e-06, 267.46912, 0, 0, 0, 0, 0, 0, -219.9999, 7.6293945e-06, 270.11758, 0, 0, 0, 0, 0, 0, -240, 0, 270.118, 0, 0, 0, 0, 0, 0, -260, 0, 270.118, 0, 0, 0, 0, 0, 0, -275.19666, 7.6293945e-06, 270.55228, 0, 0, 0, 0, 0, 0, -294.2925, 7.6293945e-06, 276.05307, 0, 0, 0, 0, 0, 0, -307.19006, 7.6293945e-06, 286.9095, 0, 0, 0, 0, 0, 0, -317.32443, 7.6293945e-06, 303.14682, 0, 0, 0, 0, 0, 0, -320, 0, 320, 0, 0, 0, 0, 0, 0, -320, 0, 340, 0, 0, 0, 0, 0, 0, -320, 0, 360, 0, 0, 0, 0, 0, 0, -320, 0, 380, 0, 0, 0, 0, 0, 0, -316.78876, 7.6293945e-06, 396.91193, 0, 0, 0, 0, 0, 0, -307.68207, 7.6293945e-06, 412.70596, 0, 0, 0, 0, 0, 0, -291.08273, 7.6293945e-06, 424.7491, 0, 0, 0, 0, 0, 0, -270, 0, 429.994, 0, 0, 0, 0, 0, 0, -250, 0, 429.994, 0, 0, 0, 0, 0, 0, -229.90146, 7.6293945e-06, 433.90823, 0, 0, 0, 0, 0, 0, -217.15442, 7.6293945e-06, 442.98242, 0, 0, 0, 0, 0, 0, -204.60803, 7.6293945e-06, 459.93704, 0, 0, 0, 0, 0, 0, -200, 0, 480, 0, 0, 0, 0, 0, 0, -200, 0, 500, 0, 0, 0, 0, 0, 0, -195.5338, 7.6293945e-06, 520.0368, 0, 0, 0, 0, 0, 0, -184.9173, 7.6293945e-06, 535.07776, 0, 0, 0, 0, 0, 0, -170.36423, 7.6293945e-06, 545.0799, 0, 0, 0, 0, 0, 0, -150.56184, 0, 549.8127, 0, 0, 0, 0, 0, 0, -130, 0, 550, 0, 0, 0, 0, 0, 0, -110, 0, 550, 0, 0, 0, 0, 0, 0, -90, 0, 550, 0, 0, 0, 0, 0, 0, -70, 0, 550, 0, 0, 0, 0, 0, 0, -50, 0, 550, 0, 0, 0, 0, 0, 0, -29.862535, 7.6293945e-06, 545.3371, 0, 0, 0, 0, 0, 0, -13.215244, 7.6293945e-06, 533.0626, 0, 0, 0, 0, 0, 0, -4.098665, 7.6293945e-06, 519.6814, 0, 0, 0, 0, 0, 0, -0.048213482, 7.6293945e-06, 500.107, 0, 0, 0, 0, 0, 0, 3.7920675, 7.6293945e-06, 480.64902, 0, 0, 0, 0, 0, 0, 13.513225, 7.6293945e-06, 465.9133, 0, 0, 0, 0, 0, 0, 29.76715, 7.6293945e-06, 454.41486, 0, 0, 0, 0, 0, 0, 49.711926, 7.6293945e-06, 450.12488, 0, 0, 0, 0, 0, 0, 70, 0, 450, 0, 0, 0, 0, 0, 0, 90, 0, 450, 0, 0, 0, 0, 0, 0, 110.055405, 7.6293945e-06, 445.42627, 0, 0, 0, 0, 0, 0, 126.975784, 7.6293945e-06, 432.8683, 0, 0, 0, 0, 0, 0, 136.95703, 7.6293945e-06, 417.5506, 0, 0, 0, 0, 0, 0, 140, 0, 400, 0, 0, 0, 0, 0, 0, 140, 0, 380, 0, 0, 0, 0, 0, 0, 140, 0, 360, 0, 0, 0, 0, 0, 0, 140, 0, 340, 0, 0, 0, 0, 0, 0, 140, 0, 320, 0, 0, 0, 0, 0, 0, 140, 0, 300, 0, 0, 0, 0, 0, 0, 140, 0, 280, 0, 0, 0, 0, 0, 0, 140, 0, 260, 0, 0, 0, 0, 0, 0, 140, 0, 240, 0, 0, 0, 0, 0, 0, 140, 0, 220, 0, 0, 0, 0, 0, 0, 140, 0, 200, 0, 0, 0, 0, 0, 0, 140, 0, 180, 0, 0, 0, 0, 0, 0, 140, 0, 160, 0, 0, 0, 0, 0, 0, 140, 0, 140, 0, 0, 0, 0, 0, 0, 140, 0, 120, 0, 0, 0, 0, 0, 0, 140, 0, 100, 0, 0, 0, 0, 0, 0, 140, 0, 80, 0, 0, 0, 0, 0, 0, 140, 0, 60, 0, 0, 0, 0, 0, 0, 140, 0, 40, 0, 0, 0, 0, 0, 0, 140, 0, 20, 0, 0, 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, 0, 0, 136.2151, 7.6293945e-06, -18.930761, 0, 0, 0, 0, 0, 0, 124.47424, 7.6293945e-06, -35.771675, 0, 0, 0, 0, 0, 0, 109.556854, 7.6293945e-06, -45.911987, 0, 0, 0, 0, 0, 0, 90, 0, -50, 0, 0, 0, 0, 0, 0, 70, 0, -50, 0, 0, 0, 0, 0, 0, 50, 0, -50, 0, 0, 0, 0, 0, 0, 30.626865, 7.6293945e-06, -46.35706, 0, 0, 0, 0, 0, 0, 14.519331, 7.6293945e-06, -35.468895, 0, 0, 0, 0, 0, 0, 3.52941, 7.6293945e-06, -19.590664),
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) "tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
} }
point_count = 93 point_count = 93
[sub_resource type="PlaneMesh" id="PlaneMesh_gsfny"] [sub_resource type="PlaneMesh" id="PlaneMesh_l1dl0"]
[sub_resource type="QuadMesh" id="QuadMesh_jfpsf"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_6k3cw"]
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_16mw0"]
noise = SubResource("FastNoiseLite_6k3cw")
seamless = true
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kjb07"]
render_priority = 0
shader = ExtResource("23_u10x4")
shader_parameter/fog_noise = SubResource("NoiseTexture2D_16mw0")
shader_parameter/use_red_as_alpha = true
shader_parameter/fog_color = Color(0.8, 0.8509804, 0.9019608, 0.60784316)
shader_parameter/scroll_speed = Vector2(0.01, 0.01)
shader_parameter/texture_scale = Vector2(0.74, 5)
shader_parameter/edge_softness_y = 0.5
shader_parameter/edge_softness_x = 0.5
shader_parameter/night_intensity = 0.0
shader_parameter/sun_color = Color(1, 1, 1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_10fbe"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_10fbe"]
render_priority = 0 render_priority = 0
@@ -256,6 +377,7 @@ shader_parameter/leaves_scale = 1.0
shader_parameter/rotation_degrees = 0.0 shader_parameter/rotation_degrees = 0.0
shader_parameter/texture_offset = Vector2(0, 0.12) shader_parameter/texture_offset = Vector2(0, 0.12)
shader_parameter/opacity = 1.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_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.5 shader_parameter/shadow_intensity = 0.5
@@ -275,25 +397,7 @@ shader_parameter/leaves_scale = 1.0
shader_parameter/rotation_degrees = 0.0 shader_parameter/rotation_degrees = 0.0
shader_parameter/texture_offset = Vector2(0, 0) shader_parameter/texture_offset = Vector2(0, 0)
shader_parameter/opacity = 1.0 shader_parameter/opacity = 1.0
shader_parameter/height_min = 0.0 shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.0
shader_parameter/highlight_intensity = 0.0
shader_parameter/light_steps = 1.0
shader_parameter/random_mix = 0.0
shader_parameter/cast_shadow_strength = 0.6
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xjipq"]
render_priority = 0
shader = ExtResource("13_kwbnj")
shader_parameter/billboard_enabled = false
shader_parameter/wind_enabled = false
shader_parameter/base_color = Color(0.21142942, 0.23515752, 0.20549765, 1)
shader_parameter/alpha_texture = ExtResource("16_l1dl0")
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/height_min = 0.0 shader_parameter/height_min = 0.0
shader_parameter/height_max = 5.0 shader_parameter/height_max = 5.0
shader_parameter/shadow_intensity = 0.0 shader_parameter/shadow_intensity = 0.0
@@ -382,11 +486,16 @@ 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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0
@@ -397,11 +506,16 @@ 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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0
@@ -512,11 +626,16 @@ 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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0
@@ -527,11 +646,16 @@ 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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0
@@ -633,17 +757,52 @@ _surfaces = [{
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_odcbb") shadow_mesh = SubResource("ArrayMesh_odcbb")
[node name="DemoForest" type="Node3D" unique_id=265279494] [sub_resource type="ShaderMaterial" id="ShaderMaterial_u10x4"]
shader = ExtResource("47_7j5hj")
shader_parameter/fog_color = Color(0.85, 0.9, 0.95, 1)
shader_parameter/clear_center_radius = 0.39200001862
shader_parameter/edge_softness = 0.30900001397898
shader_parameter/max_opacity = 0.10000000475
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kwbnj"]
shader = ExtResource("46_nonqo")
shader_parameter/blur_amount = 0.70000003325
shader_parameter/focus_size = 0.250000011875
shader_parameter/transition_softness = 0.40000001830148
[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_pomeriggio = Color(0.9999996, 0.6887105, 0.42199263, 1) 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) rotazione_sole_mattina = Vector3(-66, 85, 0)
sky_horizon_pomeriggio = Color(0.58704865, 0.36022854, 0.09941775, 1) rotazione_sole_pomeriggio = Vector3(-150, 8, 0)
energia_luce_notte = 0.998 rotazione_sole_notte = Vector3(-66, 85, 0)
esposizione_mattina = 0.8
esposizione_pomeriggio = 0.7
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.02
bloom_mattina = 0.4
bloom_notte = 0.6
energia_luce_notte = 0.6
materiale_nebbia = ExtResource("2_4xv0h") materiale_nebbia = ExtResource("2_4xv0h")
materiale_pioggia_gocce = ExtResource("3_4wepm") materiale_pioggia_gocce = ExtResource("3_4wepm")
materiale_nuvole = ExtResource("4_00nhk") materiale_nuvole = ExtResource("4_00nhk")
colore_mood_pioggia = Color(0.64196956, 0.72286916, 0.80763674, 1) 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
@@ -655,6 +814,15 @@ godray_spawn_radius = 100.0
godray_spawn_offset = Vector3(20, 80, 20) godray_spawn_offset = Vector3(20, 80, 20)
godray_rotation_degrees = Vector3(50, 30, 0) godray_rotation_degrees = Vector3(50, 30, 0)
godray_scale = Vector3(2, 25, 50) godray_scale = Vector3(2, 25, 50)
particelle_lucciole = NodePath("SubViewportContainer/SubViewport/World/Camere/CameraPivot/Lucciole")
quantita_lucciole = 550
raggio_spawn_lucciole = 60.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] [node name="CanvasLayer" type="CanvasLayer" parent="." unique_id=427161585]
@@ -662,6 +830,7 @@ godray_scale = Vector3(2, 25, 50)
offset_top = 583.0 offset_top = 583.0
offset_right = 44.0 offset_right = 44.0
offset_bottom = 607.0 offset_bottom = 607.0
text = "P"
[node name="OptionButton" type="OptionButton" parent="CanvasLayer" unique_id=2115563700] [node name="OptionButton" type="OptionButton" parent="CanvasLayer" unique_id=2115563700]
anchors_preset = 2 anchors_preset = 2
@@ -671,6 +840,18 @@ offset_top = -41.0
offset_right = 44.0 offset_right = 44.0
grow_vertical = 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] [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) 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) size = Vector3(51.92697, 11.827637, 85.98999)
@@ -682,11 +863,14 @@ light_energy = 0.0
shadow_enabled = true shadow_enabled = true
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=789046128] [node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=789046128]
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.08715579, -0.91147786, 0.4020097, 0, 0.4035453, 0.91495955, -0.99619454, -0.07974404, 0.035171315, 0, 0, 0)
light_indirect_energy = 0.0
light_volumetric_fog_energy = 0.0
shadow_enabled = true shadow_enabled = true
shadow_bias = 0.2 shadow_bias = 0.2
shadow_opacity = 0.8 shadow_normal_bias = 0.0
shadow_blur = 0.0 shadow_opacity = 0.97
shadow_blur = 0.4
directional_shadow_mode = 0 directional_shadow_mode = 0
directional_shadow_fade_start = 0.9 directional_shadow_fade_start = 0.9
@@ -695,21 +879,20 @@ environment = SubResource("Environment_igfsh")
compositor = SubResource("Compositor_17jdd") compositor = SubResource("Compositor_17jdd")
[node name="SubViewportContainer" type="SubViewportContainer" parent="." unique_id=1680514424] [node name="SubViewportContainer" type="SubViewportContainer" parent="." unique_id=1680514424]
texture_filter = 1 texture_filter = 4
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
offset_top = 3.0 offset_right = 640.0
offset_bottom = 3.0 offset_bottom = 360.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
stretch = true
mouse_target = true mouse_target = true
[node name="SubViewport" type="SubViewport" parent="SubViewportContainer" unique_id=1099909885] [node name="SubViewport" type="SubViewport" parent="SubViewportContainer" unique_id=1099909885]
handle_input_locally = false handle_input_locally = false
canvas_item_default_texture_filter = 0 canvas_item_default_texture_filter = 2
size = Vector2i(1152, 648) size = Vector2i(1920, 1080)
render_target_update_mode = 4 render_target_update_mode = 4
[node name="World" type="Node3D" parent="SubViewportContainer/SubViewport" unique_id=735268770] [node name="World" type="Node3D" parent="SubViewportContainer/SubViewport" unique_id=735268770]
@@ -722,8 +905,8 @@ surface_material_override/0 = ExtResource("4_00nhk")
[node name="GeneratoreBioma" type="Node3D" parent="SubViewportContainer/SubViewport/World" unique_id=757461529 node_paths=PackedStringArray("path_treno")] [node name="GeneratoreBioma" type="Node3D" parent="SubViewportContainer/SubViewport/World" unique_id=757461529 node_paths=PackedStringArray("path_treno")]
script = ExtResource("8_7j5hj") script = ExtResource("8_7j5hj")
path_treno = NodePath("../Path3D") path_treno = NodePath("../Path3D")
bioma_campagna = Array[PackedScene]([ExtResource("35_n33lw")]) lista_biomi = Array[ExtResource("11_vpybn")]([SubResource("Resource_5lko7"), SubResource("Resource_j2rq4")])
bioma_foresta = Array[PackedScene]([ExtResource("20_00nhk")]) raggio_visivo = 4
scala_distretti = 0.08 scala_distretti = 0.08
[node name="MainMap" parent="SubViewportContainer/SubViewport/World" unique_id=1895741703 instance=ExtResource("8_bedag")] [node name="MainMap" parent="SubViewportContainer/SubViewport/World" unique_id=1895741703 instance=ExtResource("8_bedag")]
@@ -766,12 +949,21 @@ alpha_cut = 1
texture = ExtResource("4_gffi5") texture = ExtResource("4_gffi5")
[node name="PioggiaCadente" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/World/Camere" unique_id=1150140046] [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 cast_shadow = 0
extra_cull_margin = 10.0 extra_cull_margin = 10.0
amount = 10000 amount = 10000
lifetime = 1.5 lifetime = 4.0
process_material = SubResource("ParticleProcessMaterial_qqnw7") process_material = ExtResource("3_l1dl0")
draw_pass_1 = SubResource("QuadMesh_54p3t") draw_pass_1 = SubResource("QuadMesh_54p3t")
[node name="CameraFrontale" type="Camera3D" parent="SubViewportContainer/SubViewport/World/Camere" unique_id=1311130431] [node name="CameraFrontale" type="Camera3D" parent="SubViewportContainer/SubViewport/World/Camere" unique_id=1311130431]
@@ -809,18 +1001,59 @@ camera_laterale = NodePath("../CameraLaterale")
camera_laterale_2 = NodePath("../CameraLaterale2") camera_laterale_2 = NodePath("../CameraLaterale2")
camera_alta = NodePath("../CameraAlta") camera_alta = NodePath("../CameraAlta")
[node name="Fondale1" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1412220944]
transform = Transform3D(-0.11338975, -6.265551, -494.68448, -1.460749, 70.00263, -135.17566, 91.3041, 0.79537505, -2.9306448, -137.96927, 27.780256, 32.44911)
mesh = SubResource("QuadMesh_jfpsf")
skeleton = NodePath("../../../../../..")
surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
[node name="Fondale 2" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=2048931975]
transform = Transform3D(-0.11338975, -6.265551, -494.68448, -1.4607444, 70.002335, -135.17506, 91.3038, 0.7953727, -2.9306355, 74.234314, 28.481268, -18.075485)
mesh = SubResource("QuadMesh_jfpsf")
skeleton = NodePath("../../../../../..")
surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
[node name="Fog" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1575620825]
transform = Transform3D(-0.008675572, -0.67532605, 44.935955, 0.2878669, 29.552338, 2.4086356, -85.190544, 21.108652, -0.54492366, -47.215515, 5.399597, 49.11187)
mesh = SubResource("PlaneMesh_gsfny")
skeleton = NodePath("../../../../../..")
surface_material_override/0 = ExtResource("2_4xv0h")
[node name="Fog2" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=567097306]
transform = Transform3D(-0.008677567, -0.6737314, 41.582806, 0.28793296, 29.482548, 2.228902, -85.2101, 21.0588, -0.50426126, 51.961967, 6.179736, 49.90806)
mesh = SubResource("PlaneMesh_gsfny")
skeleton = NodePath("../../../../../..")
surface_material_override/0 = ExtResource("2_4xv0h")
[node name="Lucciole" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1589413685]
transform = Transform3D(1, 0, 0, 0, 0.99999976, 0, 0, 0, 0.99999976, 0, 1.9999999, 4.7141495)
amount = 50
lifetime = 4.0
process_material = SubResource("ParticleProcessMaterial_kjb07")
draw_pass_1 = SubResource("QuadMesh_6k3cw")
[node name="Wind" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=1116712570]
transform = Transform3D(-0.9999765, 4.341205e-08, -0.006824123, -0.006824125, 4.400863e-08, 0.9999762, 4.3711378e-08, 0.99999934, -4.371136e-08, 0, 4.5733867, 21.045607)
cast_shadow = 0
emitting = false
amount = 25
lifetime = 3.0
fixed_fps = 60
process_material = SubResource("ParticleProcessMaterial_6k3cw")
draw_pass_1 = ExtResource("21_l1dl0")
[node name="CameraIso" type="Camera3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=375499667] [node name="CameraIso" type="Camera3D" parent="SubViewportContainer/SubViewport/World/Camere/CameraPivot" unique_id=375499667]
transform = Transform3D(0.5778576, -0.57709634, 0.57709634, 0, 0.7071067, 0.7071067, -0.8161376, -0.408607, 0.408607, 231.45, 295, 173.79) transform = Transform3D(0.5778576, -0.57709634, 0.5770964, 0, 0.70710677, 0.7071067, -0.8161376, -0.40860698, 0.408607, 225, 290, 173.79)
projection = 1 projection = 1
size = 35.0 size = 35.0
near = 0.001 near = 0.001
far = 500.0 far = 500.0
[node name="Path3D" type="Path3D" parent="SubViewportContainer/SubViewport/World" unique_id=335893914 node_paths=PackedStringArray("gruppo_camere")] [node name="Path3D" type="Path3D" parent="SubViewportContainer/SubViewport/World" unique_id=335893914 node_paths=PackedStringArray("gruppo_camere")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7547531, 9.898563) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 9.899)
curve = SubResource("Curve3D_bedag") curve = SubResource("Curve3D_bedag")
script = ExtResource("9_isbua") script = ExtResource("9_isbua")
velocita_treno = 8.0 velocita_treno = 4.0
modello_treno = ExtResource("10_ur7m6") modello_treno = ExtResource("10_ur7m6")
gruppo_camere = NodePath("../Camere") gruppo_camere = NodePath("../Camere")
modello_traversina = ExtResource("12_nonqo") modello_traversina = ExtResource("12_nonqo")
@@ -828,7 +1061,7 @@ scena_fuochi = ExtResource("11_gwrkm")
intensita_oscillazione_base = 0.1 intensita_oscillazione_base = 0.1
[node name="Marker3D" type="Marker3D" parent="SubViewportContainer/SubViewport/World/Path3D" unique_id=1703381559] [node name="Marker3D" type="Marker3D" parent="SubViewportContainer/SubViewport/World/Path3D" unique_id=1703381559]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -80.03244, 0, 154.7212) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -239.67256, -7.6293945e-06, 259.19427)
[node name="Marker3D2" type="Marker3D" parent="SubViewportContainer/SubViewport/World/Path3D" unique_id=524602953] [node name="Marker3D2" type="Marker3D" parent="SubViewportContainer/SubViewport/World/Path3D" unique_id=524602953]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -80.03244, 0, 565.39557) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -80.03244, 0, 565.39557)
@@ -857,11 +1090,11 @@ mesh = SubResource("PlaneMesh_gsfny")
skeleton = NodePath("../../../../..") skeleton = NodePath("../../../../..")
surface_material_override/0 = ExtResource("2_4xv0h") surface_material_override/0 = ExtResource("2_4xv0h")
[node name="MeshInstance3D20" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Fog" unique_id=1575620825] [node name="MeshInstance3D22" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Fog" unique_id=1444953115]
transform = Transform3D(0.043454673, -0.010095915, 5.972678e-05, -0.0010768108, -0.1055714, -0.09403253, 0.0018440381, 0.1762621, -0.05631697, -0.21667156, 0.027557772, 2.835077) transform = Transform3D(0.24316195, -0.050508212, 0.0023834452, 0.011936579, 1.027253, 0.15305002, -0.0005505045, -0.035938576, 4.3713703, -0.29843616, 0.06249897, 1.4124649)
mesh = SubResource("PlaneMesh_gsfny") visible = false
skeleton = NodePath("../../../../..") mesh = SubResource("PlaneMesh_l1dl0")
surface_material_override/0 = ExtResource("2_4xv0h") surface_material_override/0 = SubResource("ShaderMaterial_kjb07")
[node name="MeshInstance3D27" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Fog" unique_id=757807178] [node name="MeshInstance3D27" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Fog" unique_id=757807178]
transform = Transform3D(0.023630448, 0.105280176, -6.8980284e-09, 2.182254e-16, -4.603308e-09, -0.15785556, 0.9689784, -0.0025674512, 1.6822005e-10, -0.0900625, 0.02755782, 1.7380874) transform = Transform3D(0.023630448, 0.105280176, -6.8980284e-09, 2.182254e-16, -4.603308e-09, -0.15785556, 0.9689784, -0.0025674512, 1.6822005e-10, -0.0900625, 0.02755782, 1.7380874)
@@ -993,14 +1226,8 @@ mesh = SubResource("QuadMesh_jfpsf")
skeleton = NodePath("../../../../..") skeleton = NodePath("../../../../..")
surface_material_override/0 = SubResource("ShaderMaterial_xjipq") surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
[node name="MeshInstance3D26" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Fondali" unique_id=1412220944]
transform = Transform3D(0.087180555, -0.011552672, -0.9327844, -0.0035826832, 0.08077537, -0.15448467, 0.2480174, 0.0052277013, 0.3256512, -0.3361349, -0.34356952, 0.416931)
mesh = SubResource("QuadMesh_jfpsf")
skeleton = NodePath("../../../../..")
surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
[node name="MeshInstance3D27" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Fondali" unique_id=1494524637] [node name="MeshInstance3D27" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/World/Fondali" unique_id=1494524637]
transform = Transform3D(0.26267588, 0.0016141435, 0.038116224, -0.0035826885, 0.080775365, -0.15448464, -0.010702037, 0.0125772655, 0.98726016, -0.22054955, -0.34356952, 0.6679051) transform = Transform3D(0.26267588, 0.0016141436, 0.038116224, -0.0035826885, 0.080775365, -0.15448464, -0.010702038, 0.012577266, 0.9872602, -0.22054955, -0.34356952, 0.6950124)
mesh = SubResource("QuadMesh_jfpsf") mesh = SubResource("QuadMesh_jfpsf")
skeleton = NodePath("../../../../..") skeleton = NodePath("../../../../..")
surface_material_override/0 = SubResource("ShaderMaterial_xjipq") surface_material_override/0 = SubResource("ShaderMaterial_xjipq")
@@ -20726,6 +20953,46 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.7385445, 0, 43.8387)
[node name="SK_Mannequin2" parent="SubViewportContainer/SubViewport/World" unique_id=24662648 instance=ExtResource("34_3nw1o")] [node name="SK_Mannequin2" parent="SubViewportContainer/SubViewport/World" unique_id=24662648 instance=ExtResource("34_3nw1o")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9180713, 0, 29.270012) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.9180713, 0, 29.270012)
[node name="ScreenEffect" type="CanvasLayer" parent="SubViewportContainer/SubViewport" unique_id=1639236585]
layer = 2
[node name="PolvereAtmosferica" type="ColorRect" parent="SubViewportContainer/SubViewport/ScreenEffect" unique_id=263223022]
material = ExtResource("5_u10x4")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="ScreenEffect2" type="CanvasLayer" parent="SubViewportContainer/SubViewport" unique_id=2088057254]
layer = 3
follow_viewport_scale = 0.001
[node name="Nebbia" type="ColorRect" parent="SubViewportContainer/SubViewport/ScreenEffect2" unique_id=1102385319]
material = SubResource("ShaderMaterial_u10x4")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="ScreenEffect3" type="CanvasLayer" parent="SubViewportContainer/SubViewport" unique_id=301859382]
layer = 4
[node name="Blur" type="ColorRect" parent="SubViewportContainer/SubViewport/ScreenEffect3" unique_id=2000734182]
material = SubResource("ShaderMaterial_kwbnj")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=416394629]
mesh = ExtResource("55_qdxup")
[editable path="SubViewportContainer/SubViewport/World/Blockout_1/Mare/rock25"] [editable path="SubViewportContainer/SubViewport/World/Blockout_1/Mare/rock25"]
[editable path="SubViewportContainer/SubViewport/World/Blockout_1/Tree2/Trees/tree2"] [editable path="SubViewportContainer/SubViewport/World/Blockout_1/Tree2/Trees/tree2"]
[editable path="SubViewportContainer/SubViewport/World/Blockout_1/Tree2/Trees/tree3"] [editable path="SubViewportContainer/SubViewport/World/Blockout_1/Tree2/Trees/tree3"]

View File

@@ -7,6 +7,8 @@
[ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="5_iocve"] [ext_resource type="Shader" uid="uid://c0dy1aqj1b4q3" path="res://Shaders/trunk_shader.gdshader" id="5_iocve"]
[ext_resource type="Material" uid="uid://0eenjgyf3eod" path="res://Materials/Water.tres" id="5_mcxqp"] [ext_resource type="Material" uid="uid://0eenjgyf3eod" path="res://Materials/Water.tres" id="5_mcxqp"]
[ext_resource type="Texture2D" uid="uid://8sdgkykyg5l5" path="res://Assets/Textures/rock_color.png" id="6_cp4eh"] [ext_resource type="Texture2D" uid="uid://8sdgkykyg5l5" path="res://Assets/Textures/rock_color.png" id="6_cp4eh"]
[ext_resource type="PackedScene" uid="uid://whamwjwv4nvb" path="res://Scenes/Chunk_Montagne/chunck_m_n_o_e_s_3f.tscn" id="8_cp4eh"]
[ext_resource type="PackedScene" uid="uid://dn75nbg5ksfsi" path="res://Scenes/Chunk_Rotaie/chunk_rettilineo_F.tscn" id="9_ch5ch"]
[sub_resource type="BoxShape3D" id="BoxShape3D_iocve"] [sub_resource type="BoxShape3D" id="BoxShape3D_iocve"]
size = Vector3(20, 10, 20) size = Vector3(20, 10, 20)
@@ -19,11 +21,16 @@ 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/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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0
@@ -60,21 +67,6 @@ _surfaces = [{
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_tbo4k") shadow_mesh = SubResource("ArrayMesh_tbo4k")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_v2ie4"]
render_priority = 0
shader = ExtResource("5_iocve")
shader_parameter/albedo_color = Color(1, 1, 1, 1)
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)
shader_parameter/shadow_offset = 0.0
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_ftth4"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ftth4"]
render_priority = 0 render_priority = 0
shader = ExtResource("5_iocve") shader = ExtResource("5_iocve")
@@ -83,17 +75,22 @@ 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/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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_80fwj"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_80fwj"]
[sub_resource type="ArrayMesh" id="ArrayMesh_xjipq"] [sub_resource type="ArrayMesh" id="ArrayMesh_ch5ch"]
_surfaces = [{ _surfaces = [{
"aabb": AABB(-0.8691641, -1.0336405, -0.8410101, 1.7731525, 2.0458593, 1.8830655), "aabb": AABB(-0.8691641, -1.0336405, -0.8410101, 1.7731525, 2.0458593, 1.8830655),
"format": 34896613377, "format": 34896613377,
@@ -122,22 +119,7 @@ _surfaces = [{
"vertex_data": PackedByteArray("KkI8K97O8frbZ+YogNdr+rw9dBT2iPH6NJZTBFqZu/rOiwAAgoR6/AAAP0oTjgipSTauaXu+aK4aPYU0gNHcqsFNP0Zc36iq+0EohEW4orSWCC+WqYgNsXNRh5RK04qr+0EohEW4H7VHY+qU8+qNqgxRRLvI0pur+0EohEW4vKf/GRLHUpaTp6ks8OkonNGull7h5ZnItrF2hfO/APaArtCGzGrA+k6wwU0/RlzfmK3bYKw+u+PDsMFNP0Zc3xjC22fmKIDXCsEaPYU0gNGDwSpCPCvezgrB22CsPrvjGMIqQjwr3s7q0AAAP0oTjnzUGj2FNIDRr8y8PXQU9oiI1lYwkh/2chDaOwUWQeFpDdqWXuHlmcg/4qks8OkonJLTqma3+kKnktMggv//aY3Q93aF878A9pvFqma3+kKn0O1WMJIf9nL06GVfR0tSO+jrZjxrVP84z+w7BRZB4WmR6H2FFwgabJXsZThrbeUF0u2JcNEqV0wV5oxmp1OgJHbu730ZVEATTu5lX0dLUjvE7lWVmixIJn7iZV9HS1I7J+DZhE9DiBcF4Ixmp1OgJAXgvD10FPaIY/FWMJIf9nJj8c6LAACChB7tlggvlqmIacqKY26//gLo6/8ZEsdSltXQ3Wxl3qUTbOupLPDpKJyb0LhXTJgAADvsZThrbeUFGdk7BRZB4WlEygAAP0oTjuHGIIL//2mNyfSpLPDpKJxh+N1sZd6lE9n9qma3+kKnY/i5j0P9rEDZ/ZiJmOrXF9n9utO3conN897//+kzcWpJ6DSWUwRamXreVetSIClqU+hF0CESKnG/6Ntn5iiA10zc22CsPrvjldnQhsxqwPom39CGzGrA+rfadoXzvwD21uKKsFWwi9vW4rrTt3KJzcrphLxqwcXD0/l2hfO/APZB9CCC//9pjRr8ZrW63iyWIP65j0P9rEDJ+BLBqOHeNMn4+MMjy4qWwf4Swajh3jS4/aHXLsbnNE3+le6ebNM9xf///+kzcWrq/4S8asHFw4v/utO3conN7vx9hRcIGmzA91XrUiApalj6VZWaLEgmwPdF0CESKnE3+e99GVRAE3L5irLORl0mY/fpyr5sEi17+tmET0OIF0z1uFdMmAAAXvqKY26//gKu+0a/ecQdIN77Xe5YStBDP/qV7p5s0z1B+aHXLsbnNGboRr95xB0gAPVGv3nEHSBm6BLBqOHeNGbowLR+3s4kZuhVlZosSCZv+tmET0OIF1v+Xe5YStBDa/xV61IgKWog/P//6TNxaiD8Xe5YStBDjP3//+kzcWqM/ZXunmzTPYz9EsGo4d40xuyYiZjq1xfG7MC0ft7OJMbsuY9D/axAxuyYiZjq1xeT70a/ecQdIEPtwLR+3s4kQ+2KY26//gIq891sZd6lEyrz730ZVEATB/2MZqdToCT18dmET0OIF/XxuFdMmAAAB/1lOGtt5QUH/X2FFwgabOf+zosAAIKE5/40llMEWpnn/jSWUwRamaj8RdAhEipxqPx9hRcIGmyo/BUbEkjErVKq2AH/axKRyLClSjdlfNkkrL1ZSXLW5vqsnymOiGmgMLKfKY6IaaBlp/U8B8QUvMOn9TwHxBS80q9JcFXIZueHroSDlpT//7usvVlJctbmS6/ufM1LdOr1tKVKN2V82ZitFRsSSMSt3brAghDag98az0lwVchm55vFU4Ym667IoeIKh8j6T6Fz8uc2azW0WWTqz2PKFQZoouhIGZdaqDpq7s9jyhUGaJLv44p7BFVy5+zwIFSnzVTe1Io0UMS4OwTlYRa5tkNwPdFFR1ngKUJt5scwXt4KZz/YFRQ9mB5lHdDYAf9rEpFdyEgZl1qoOl7RCycCmHY+K9ZESIyQtgM77LtF5L0FIELrAVt25+4zT+t0Z+byy2ba9UVHWeApQnfzAVt25+4z2f3HMF7eCmdw9ueQvP/PYob0U7wBSXGya95/u1YRKouI3ZTwm0nAlbvfQOPEaOy3ON336wReE6Ml5SGXaEEqzWre7nzNS3TqRNyEg5aU//9D3ki6Cpko3b/oO8+uk13Ir+4YpRHLj9AX98CCENqD3zb1U4Ym667IBfwKh8j6T6EN/ueQvP/PYnr6Lb5u40xqo/ow1InBsWka/y2+buNMagf+MeL8riFBQ//40j6eyZSD/zvPrpNdyO78QOPEaOy3t//36wReE6O7/5Twm0nAler/7PO8aiJcuv8l41aWtGu7/5rsKJVQPJ//6saFJr4+m/iU28Mn81BY+mt2n2gsGqv/MrPwbK4pvPsLk8OUeBdy/J3F+5jDJB/+68oMknkn8P9nxLk8aC97+evKDJJ5Jy/4muwolVA8L/gx4vyuIUEw8Z3F+5jDJAD1Z8S5PGgvQvzqxoUmvj4b/JTbwyfzUGT87PO8aiJcjP1rdp9oLBr18URIjJC2Awf944p7BFVy5/5/u1YRKouo/NgB/2sSkQipfx6rXf6sR6z7JUB4Waf5sc5Op3+k1XGvlggvlqmIAqngE2K9GY8CqVlv8dR+3tWyTEb/4TK4zq//GRLHUpbRrhhnAwvljmD6BIJwFqK4LfkPekUGw416/P8jVTRAouTMWB4tLzCF4thYH4Yt1HIK2rloBS1V2nHBll7h5ZnIktNMRv/hMriS00UJLm3/aMnMyxNsUr5IrM7tHbmMYU15010jzmQRKVzVYRa5tkNwH9DgE2K9GY+0yh8fLsPPZCnVijRQxLg7aNe7ReS9BSAc2kRIjJC2A3/Z01AeMhpVBet9hRcIGmw451+Spi+6I0LgWB+GLdRyWubLE2xSvkg4610jzmQRKdrtmk2nWGIoO+4BW3bn7jO887mPQ/2sQAz0YXhD+UFzT/aMjoX/vWsK9ch+kf/jmK/3jE5e0PwozeofHy7Dz2RF1uATYr0Zjz3RBIJwFqK4Ft7trKIupqyg3rloBS1V2u/aiqiSWk3U/d/5uAJ0reH/3hHcq1XOrX3cwconPJuhS9wI4NoqoIaK43+7VhEqi7/olPCbScCVJeVA48Ro7Lcl5RHcq1XOrSXl+bgCdK3hbuGKsFWwi9v58/Gv1NVns0z/jI6F/71rGvyk3K2vKF6w/zXW5aN8eq7/+MMjy4qW5v87z66TXchI/4/cjooAlVX/DduJhR+x2P9rdp9oLBpM9SiP6cPlDMT7a3afaCwacvlfkqYvuiPE/IqyzkZdJlv+odcuxuc0aPOa7CiVUDww8evKDJJ5J+DyKI/pw+UMqO/IfpH/45jQ91lv8dR+3n3OD3pFBsONPe2ien8JVXLo7BhnAwvljkTv730ZVEAT9fEwcZlT33AiVDBxmVMlcbNTXHKtUaxvxcMie3LEcXREw95zxshwgjC7dX26s0R1cc54gMHVXXFHtgx2Y8JTaqjKpWkHvL17fsJifxm87nfWrw5mMZdbayqhNmeWlg5cRnr/X5958135ef9fn3kOXEZ68MLQ+u3Buvk/wbr8rsFD+Su8yvn6vi35o4z1qCqI17EqiNexvo4CrEqMgKQAjMarWlD86upLWuMtTArv0FAg7jZMMfzAS0D4ulPg70JLCvhYS/P4AEsV9tNWdfX1Vx/561ZH++tWR/vtSAz87UgM/Hy6r/w6e3/ox2Jaxgt5QtJGZgbFGHmp0u1flcdZbzzWqXta8sd9/vSqdCa+OnOIvl5rsL8kdGq+Xmuwv15rsL+4iRpZUJU0W1CMdVv8kqdYPJDEVeyJoFtbgrFZ/YxmWzqZOnPLoB9+y6Affj2km3u5ojaVdZ9dlCIvLhWZIZMhijEkGYoxJBkSG8onbh0OK94ZWS22CqM4RrVHipYQaTHdrq6JYT9t6Hs0pdthP23obzpE4q7F7FyWxJ9N0sPeUv3E0UsyxNBV+cKsUOfCJlGIxBZYN8X8WLjSim62yVpkuNKKbrjSim640opu0i8Vx4AvhcHYJWnGaSUgyGklIMgOyUSADslEgA7JRICQUi8AkFIvAJBSLwCQUi8AaMRJQ5vGDU2bxg1Np8IsO6fCLDukOirCBkiKzQZIis2kOirCpDoqwljE1nhYxNZ4WMTWeD6K20M+ittDPorbQ+NymL+efei2DHelyXR4y8uqf/a3TGm+vWNq5soMfcy+bXoLuQRw2qhsZyuagWTrjFtrKqGmQ9j2h402pUqMgKSZjBCpAI3Xq2dOCunAUJXsKkrE7LdJiP4Qt7L+hXJZ3eFqksfyeJDRJWrKxtpzJ865doXiwHxS8Ix1W+N8cQrb7V+Vx3hkBsZhZ5fEhXQyvpJzZL5ea7C/UXNpvtl1671/i9xa/4sUXHeMcFpIhw9ZXpisYlSMh1stiSBb5ZwKeBukWH4qp7CBhJ/AlmCes5binYCdQyc+G/gt2hmFLR0aDRUrLscbbSpZEjIxOxKPL92uronUsC2ORw4GM0a1R4puDFc1ww9UMVYNezXGPBnlezSl20HAj062wohNpcJUUlzBbk4+NgnAbcS5U/DF+FnwxfhZcsx5Z7bJWmTAK7vEySmUxdAlh8YOyUSABkiKzaQ6KsJYxNZ4PorbQ6xvxcMUd1m+nH94usN7yNDfa0G032tBtLOA27sHfdq+vXt+wt1wJVQocFNVXHKtUZvBofwlwej4m715+TNe73kqiNexKojXsX95h+oeeNTtyXPL3lZyDNvGdmXhCnt85UFyD91NcCDa8G0Q18puk9ZUTdbkClJU829Y5/dQU5jwo02M7KJLf/NzS4L3VHQ6vkN1CL6VdQq+CHbmvS51Nb7jZivFUHUjz/J4kNFqjOdbG47gXJKGq1p7jDhad4nlWMGGY1kWisBbZI+EWTyQxFVemKxiXpisYl6YrGJRnpF2zKOVjY+gb54iLy4V6hA+MCyv1I94Du4xvBJUMPQSqS+2ENAv/cTRS/HC51CuxexcZy9bw4AvhcHcyqFlcsx5Zz3LD2ZYxAVDvo4CrICNJKWUuUL9VLXO/49J4v8GSIrN") "vertex_data": PackedByteArray("KkI8K97O8frbZ+YogNdr+rw9dBT2iPH6NJZTBFqZu/rOiwAAgoR6/AAAP0oTjgipSTauaXu+aK4aPYU0gNHcqsFNP0Zc36iq+0EohEW4orSWCC+WqYgNsXNRh5RK04qr+0EohEW4H7VHY+qU8+qNqgxRRLvI0pur+0EohEW4vKf/GRLHUpaTp6ks8OkonNGull7h5ZnItrF2hfO/APaArtCGzGrA+k6wwU0/RlzfmK3bYKw+u+PDsMFNP0Zc3xjC22fmKIDXCsEaPYU0gNGDwSpCPCvezgrB22CsPrvjGMIqQjwr3s7q0AAAP0oTjnzUGj2FNIDRr8y8PXQU9oiI1lYwkh/2chDaOwUWQeFpDdqWXuHlmcg/4qks8OkonJLTqma3+kKnktMggv//aY3Q93aF878A9pvFqma3+kKn0O1WMJIf9nL06GVfR0tSO+jrZjxrVP84z+w7BRZB4WmR6H2FFwgabJXsZThrbeUF0u2JcNEqV0wV5oxmp1OgJHbu730ZVEATTu5lX0dLUjvE7lWVmixIJn7iZV9HS1I7J+DZhE9DiBcF4Ixmp1OgJAXgvD10FPaIY/FWMJIf9nJj8c6LAACChB7tlggvlqmIacqKY26//gLo6/8ZEsdSltXQ3Wxl3qUTbOupLPDpKJyb0LhXTJgAADvsZThrbeUFGdk7BRZB4WlEygAAP0oTjuHGIIL//2mNyfSpLPDpKJxh+N1sZd6lE9n9qma3+kKnY/i5j0P9rEDZ/ZiJmOrXF9n9utO3conN897//+kzcWpJ6DSWUwRamXreVetSIClqU+hF0CESKnG/6Ntn5iiA10zc22CsPrvjldnQhsxqwPom39CGzGrA+rfadoXzvwD21uKKsFWwi9vW4rrTt3KJzcrphLxqwcXD0/l2hfO/APZB9CCC//9pjRr8ZrW63iyWIP65j0P9rEDJ+BLBqOHeNMn4+MMjy4qWwf4Swajh3jS4/aHXLsbnNE3+le6ebNM9xf///+kzcWrq/4S8asHFw4v/utO3conN7vx9hRcIGmzA91XrUiApalj6VZWaLEgmwPdF0CESKnE3+e99GVRAE3L5irLORl0mY/fpyr5sEi17+tmET0OIF0z1uFdMmAAAXvqKY26//gKu+0a/ecQdIN77Xe5YStBDP/qV7p5s0z1B+aHXLsbnNGboRr95xB0gAPVGv3nEHSBm6BLBqOHeNGbowLR+3s4kZuhVlZosSCZv+tmET0OIF1v+Xe5YStBDa/xV61IgKWog/P//6TNxaiD8Xe5YStBDjP3//+kzcWqM/ZXunmzTPYz9EsGo4d40xuyYiZjq1xfG7MC0ft7OJMbsuY9D/axAxuyYiZjq1xeT70a/ecQdIEPtwLR+3s4kQ+2KY26//gIq891sZd6lEyrz730ZVEATB/2MZqdToCT18dmET0OIF/XxuFdMmAAAB/1lOGtt5QUH/X2FFwgabOf+zosAAIKE5/40llMEWpnn/jSWUwRamaj8RdAhEipxqPx9hRcIGmyo/BUbEkjErVKq2AH/axKRyLClSjdlfNkkrL1ZSXLW5vqsnymOiGmgMLKfKY6IaaBlp/U8B8QUvMOn9TwHxBS80q9JcFXIZueHroSDlpT//7usvVlJctbmS6/ufM1LdOr1tKVKN2V82ZitFRsSSMSt3brAghDag98az0lwVchm55vFU4Ym667IoeIKh8j6T6Fz8uc2azW0WWTqz2PKFQZoouhIGZdaqDpq7s9jyhUGaJLv44p7BFVy5+zwIFSnzVTe1Io0UMS4OwTlYRa5tkNwPdFFR1ngKUJt5scwXt4KZz/YFRQ9mB5lHdDYAf9rEpFdyEgZl1qoOl7RCycCmHY+K9ZESIyQtgM77LtF5L0FIELrAVt25+4zT+t0Z+byy2ba9UVHWeApQnfzAVt25+4z2f3HMF7eCmdw9ueQvP/PYob0U7wBSXGya95/u1YRKouI3ZTwm0nAlbvfQOPEaOy3ON336wReE6Ml5SGXaEEqzWre7nzNS3TqRNyEg5aU//9D3ki6Cpko3b/oO8+uk13Ir+4YpRHLj9AX98CCENqD3zb1U4Ym667IBfwKh8j6T6EN/ueQvP/PYnr6Lb5u40xqo/ow1InBsWka/y2+buNMagf+MeL8riFBQ//40j6eyZSD/zvPrpNdyO78QOPEaOy3t//36wReE6O7/5Twm0nAler/7PO8aiJcuv8l41aWtGu7/5rsKJVQPJ//6saFJr4+m/iU28Mn81BY+mt2n2gsGqv/MrPwbK4pvPsLk8OUeBdy/J3F+5jDJB/+68oMknkn8P9nxLk8aC97+evKDJJ5Jy/4muwolVA8L/gx4vyuIUEw8Z3F+5jDJAD1Z8S5PGgvQvzqxoUmvj4b/JTbwyfzUGT87PO8aiJcjP1rdp9oLBr18URIjJC2Awf944p7BFVy5/5/u1YRKouo/NgB/2sSkQipfx6rXf6sR6z7JUB4Waf5sc5Op3+k1XGvlggvlqmIAqngE2K9GY8CqVlv8dR+3tWyTEb/4TK4zq//GRLHUpbRrhhnAwvljmD6BIJwFqK4LfkPekUGw416/P8jVTRAouTMWB4tLzCF4thYH4Yt1HIK2rloBS1V2nHBll7h5ZnIktNMRv/hMriS00UJLm3/aMnMyxNsUr5IrM7tHbmMYU15010jzmQRKVzVYRa5tkNwH9DgE2K9GY+0yh8fLsPPZCnVijRQxLg7aNe7ReS9BSAc2kRIjJC2A3/Z01AeMhpVBet9hRcIGmw451+Spi+6I0LgWB+GLdRyWubLE2xSvkg4610jzmQRKdrtmk2nWGIoO+4BW3bn7jO887mPQ/2sQAz0YXhD+UFzT/aMjoX/vWsK9ch+kf/jmK/3jE5e0PwozeofHy7Dz2RF1uATYr0Zjz3RBIJwFqK4Ft7trKIupqyg3rloBS1V2u/aiqiSWk3U/d/5uAJ0reH/3hHcq1XOrX3cwconPJuhS9wI4NoqoIaK43+7VhEqi7/olPCbScCVJeVA48Ro7Lcl5RHcq1XOrSXl+bgCdK3hbuGKsFWwi9v58/Gv1NVns0z/jI6F/71rGvyk3K2vKF6w/zXW5aN8eq7/+MMjy4qW5v87z66TXchI/4/cjooAlVX/DduJhR+x2P9rdp9oLBpM9SiP6cPlDMT7a3afaCwacvlfkqYvuiPE/IqyzkZdJlv+odcuxuc0aPOa7CiVUDww8evKDJJ5J+DyKI/pw+UMqO/IfpH/45jQ91lv8dR+3n3OD3pFBsONPe2ien8JVXLo7BhnAwvljkTv730ZVEAT9fEwcZlT33AiVDBxmVMlcbNTXHKtUaxvxcMie3LEcXREw95zxshwgjC7dX26s0R1cc54gMHVXXFHtgx2Y8JTaqjKpWkHvL17fsJifxm87nfWrw5mMZdbayqhNmeWlg5cRnr/X5958135ef9fn3kOXEZ68MLQ+u3Buvk/wbr8rsFD+Su8yvn6vi35o4z1qCqI17EqiNexvo4CrEqMgKQAjMarWlD86upLWuMtTArv0FAg7jZMMfzAS0D4ulPg70JLCvhYS/P4AEsV9tNWdfX1Vx/561ZH++tWR/vtSAz87UgM/Hy6r/w6e3/ox2Jaxgt5QtJGZgbFGHmp0u1flcdZbzzWqXta8sd9/vSqdCa+OnOIvl5rsL8kdGq+Xmuwv15rsL+4iRpZUJU0W1CMdVv8kqdYPJDEVeyJoFtbgrFZ/YxmWzqZOnPLoB9+y6Affj2km3u5ojaVdZ9dlCIvLhWZIZMhijEkGYoxJBkSG8onbh0OK94ZWS22CqM4RrVHipYQaTHdrq6JYT9t6Hs0pdthP23obzpE4q7F7FyWxJ9N0sPeUv3E0UsyxNBV+cKsUOfCJlGIxBZYN8X8WLjSim62yVpkuNKKbrjSim640opu0i8Vx4AvhcHYJWnGaSUgyGklIMgOyUSADslEgA7JRICQUi8AkFIvAJBSLwCQUi8AaMRJQ5vGDU2bxg1Np8IsO6fCLDukOirCBkiKzQZIis2kOirCpDoqwljE1nhYxNZ4WMTWeD6K20M+ittDPorbQ+NymL+efei2DHelyXR4y8uqf/a3TGm+vWNq5soMfcy+bXoLuQRw2qhsZyuagWTrjFtrKqGmQ9j2h402pUqMgKSZjBCpAI3Xq2dOCunAUJXsKkrE7LdJiP4Qt7L+hXJZ3eFqksfyeJDRJWrKxtpzJ865doXiwHxS8Ix1W+N8cQrb7V+Vx3hkBsZhZ5fEhXQyvpJzZL5ea7C/UXNpvtl1671/i9xa/4sUXHeMcFpIhw9ZXpisYlSMh1stiSBb5ZwKeBukWH4qp7CBhJ/AlmCes5binYCdQyc+G/gt2hmFLR0aDRUrLscbbSpZEjIxOxKPL92uronUsC2ORw4GM0a1R4puDFc1ww9UMVYNezXGPBnlezSl20HAj062wohNpcJUUlzBbk4+NgnAbcS5U/DF+FnwxfhZcsx5Z7bJWmTAK7vEySmUxdAlh8YOyUSABkiKzaQ6KsJYxNZ4PorbQ6xvxcMUd1m+nH94usN7yNDfa0G032tBtLOA27sHfdq+vXt+wt1wJVQocFNVXHKtUZvBofwlwej4m715+TNe73kqiNexKojXsX95h+oeeNTtyXPL3lZyDNvGdmXhCnt85UFyD91NcCDa8G0Q18puk9ZUTdbkClJU829Y5/dQU5jwo02M7KJLf/NzS4L3VHQ6vkN1CL6VdQq+CHbmvS51Nb7jZivFUHUjz/J4kNFqjOdbG47gXJKGq1p7jDhad4nlWMGGY1kWisBbZI+EWTyQxFVemKxiXpisYl6YrGJRnpF2zKOVjY+gb54iLy4V6hA+MCyv1I94Du4xvBJUMPQSqS+2ENAv/cTRS/HC51CuxexcZy9bw4AvhcHcyqFlcsx5Zz3LD2ZYxAVDvo4CrICNJKWUuUL9VLXO/49J4v8GSIrN")
}] }]
blend_shape_mode = 0 blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_xjipq") shadow_mesh = SubResource("ArrayMesh_ch5ch")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_87m0o"]
render_priority = 0
shader = ExtResource("5_iocve")
shader_parameter/albedo_color = Color(1, 1, 1, 1)
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)
shader_parameter/shadow_offset = 0.0
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="PlaneMesh" id="PlaneMesh_cp4eh"] [sub_resource type="PlaneMesh" id="PlaneMesh_cp4eh"]
size = Vector2(100, 100) size = Vector2(100, 100)
@@ -162,178 +144,169 @@ transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -580
[node name="Chunk_C_E_3" parent="." unique_id=1415663057 instance=ExtResource("1_nofk3")] [node name="Chunk_C_E_3" parent="." unique_id=1415663057 instance=ExtResource("1_nofk3")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -240, 0, 160) transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -240, 0, 160)
[node name="Chunk_Rettilineo_1" parent="." unique_id=916054224 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_1" parent="." unique_id=78911850 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -20, 0, 0) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -20, 0, 0)
[node name="Chunk_Rettilineo_7" parent="." unique_id=1449254437 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_7" parent="." unique_id=1201707982 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -180, 0, -60) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -180, 0, -60)
[node name="Chunk_Rettilineo_8" parent="." unique_id=839673178 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_23" parent="." unique_id=1388153615 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -180, 0, -80)
[node name="Chunk_Rettilineo_23" parent="." unique_id=1943244631 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, 80) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, 80)
[node name="Chunk_Rettilineo_24" parent="." unique_id=1192091532 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_24" parent="." unique_id=1710723753 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, 60) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, 60)
[node name="Chunk_Rettilineo_21" parent="." unique_id=901101483 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_21" parent="." unique_id=1978190814 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -440, 0, -260) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -440, 0, -260)
[node name="Chunk_Rettilineo_9" parent="." unique_id=443031099 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_9" parent="." unique_id=1624707401 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -180, 0, -100) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -180, 0, -100)
[node name="Chunk_Rettilineo_10" parent="." unique_id=993903971 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_10" parent="." unique_id=1802745169 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -280, 0, -220) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -280, 0, -220)
[node name="Chunk_Rettilineo_11" parent="." unique_id=2065300144 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_12" parent="." unique_id=854424823 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -280, 0, -240)
[node name="Chunk_Rettilineo_12" parent="." unique_id=569460576 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -280, 0, -260) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -280, 0, -260)
[node name="Chunk_Rettilineo_2" parent="." unique_id=686679987 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_2" parent="." unique_id=1190063660 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -40, 0, 0) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -40, 0, 0)
[node name="Chunk_Rettilineo_3" parent="." unique_id=1229462554 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_3" parent="." unique_id=712907102 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -60, 0, 0) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -60, 0, 0)
[node name="Chunk_Rettilineo_4" parent="." unique_id=1586405126 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_4" parent="." unique_id=1073486505 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -80, 0, 0) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -80, 0, 0)
[node name="Chunk_Rettilineo_5" parent="." unique_id=266529562 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_5" parent="." unique_id=1325870477 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -100, 0, 0) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -100, 0, 0)
[node name="Chunk_Rettilineo_13" parent="." unique_id=88649052 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_13" parent="." unique_id=1581462545 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -340, 0, -320) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -340, 0, -320)
[node name="Chunk_Rettilineo_14" parent="." unique_id=2083436048 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_14" parent="." unique_id=332489689 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -360, 0, -320) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -360, 0, -320)
[node name="Chunk_Rettilineo_15" parent="." unique_id=378542667 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_15" parent="." unique_id=1547000461 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -60) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -60)
[node name="Chunk_Rettilineo_16" parent="." unique_id=1326121435 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_16" parent="." unique_id=263176660 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -80) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -80)
[node name="Chunk_Rettilineo_41" parent="." unique_id=1850142438 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_41" parent="." unique_id=617603744 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -460, 0, 60) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -460, 0, 60)
[node name="Chunk_Rettilineo_42" parent="." unique_id=1616645985 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_42" parent="." unique_id=1676194540 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -460, 0, 80) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -460, 0, 80)
[node name="Chunk_Rettilineo_17" parent="." unique_id=1791823964 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_17" parent="." unique_id=704734453 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -100) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -100)
[node name="Chunk_Rettilineo_18" parent="." unique_id=1782121534 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_18" parent="." unique_id=1538499331 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -120) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -120)
[node name="Chunk_Rettilineo_19" parent="." unique_id=992167941 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_19" parent="." unique_id=1837237534 instance=ExtResource("1_q7xqk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -140) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -560, 0, -140)
[node name="Chunk_Rettilineo_20" parent="." unique_id=2006958448 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_20" parent="." unique_id=1880921589 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -380, 0, -320) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -380, 0, -320)
[node name="Chunk_Rettilineo_22" parent="." unique_id=5820752 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_22" parent="." unique_id=2102955202 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -500, 0, -200) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -500, 0, -200)
[node name="Chunk_Rettilineo_6" parent="." unique_id=1011078737 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_25" parent="." unique_id=396923136 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -120, 0, 0)
[node name="Chunk_Rettilineo_25" parent="." unique_id=1291144788 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -20, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -20, 0, 140)
[node name="Chunk_Rettilineo_26" parent="." unique_id=1934846413 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_26" parent="." unique_id=1516847899 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -40, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -40, 0, 140)
[node name="Chunk_Rettilineo_27" parent="." unique_id=1054570332 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_27" parent="." unique_id=2102960867 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -60, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -60, 0, 140)
[node name="Chunk_Rettilineo_28" parent="." unique_id=944753834 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_28" parent="." unique_id=1304220984 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -80, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -80, 0, 140)
[node name="Chunk_Rettilineo_29" parent="." unique_id=1363918374 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_29" parent="." unique_id=120006844 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -100, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -100, 0, 140)
[node name="Chunk_Rettilineo_30" parent="." unique_id=207032243 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_30" parent="." unique_id=77359631 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -120, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -120, 0, 140)
[node name="Chunk_Rettilineo_31" parent="." unique_id=1428086358 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_31" parent="." unique_id=1549424242 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -140, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -140, 0, 140)
[node name="Chunk_Rettilineo_32" parent="." unique_id=608273237 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_32" parent="." unique_id=1941857412 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -160, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -160, 0, 140)
[node name="Chunk_Rettilineo_33" parent="." unique_id=2102655034 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_33" parent="." unique_id=1881453980 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -180, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -180, 0, 140)
[node name="Chunk_Rettilineo_34" parent="." unique_id=349007386 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_34" parent="." unique_id=1522771871 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -200, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -200, 0, 140)
[node name="Chunk_Rettilineo_35" parent="." unique_id=373623371 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_35" parent="." unique_id=1037490542 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -220, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -220, 0, 140)
[node name="Chunk_Rettilineo_36" parent="." unique_id=1626262209 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_36" parent="." unique_id=762715601 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -240, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -240, 0, 140)
[node name="Chunk_Rettilineo_37" parent="." unique_id=169233115 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_37" parent="." unique_id=1655202917 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -260, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -260, 0, 140)
[node name="Chunk_Rettilineo_38" parent="." unique_id=1290278022 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_38" parent="." unique_id=61353189 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -280, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -280, 0, 140)
[node name="Chunk_Rettilineo_39" parent="." unique_id=327295431 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_39" parent="." unique_id=299561757 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -300, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -300, 0, 140)
[node name="Chunk_Rettilineo_40" parent="." unique_id=1235772014 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_40" parent="." unique_id=1097839916 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -320, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -320, 0, 140)
[node name="Chunk_Rettilineo_43" parent="." unique_id=109362285 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_43" parent="." unique_id=1599561754 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -400, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -400, 0, 140)
[node name="Chunk_Rettilineo_44" parent="." unique_id=32742147 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_44" parent="." unique_id=413133295 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -380, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -380, 0, 140)
[node name="Chunk_Rettilineo_45" parent="." unique_id=783108639 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_45" parent="." unique_id=2101695154 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -360, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -360, 0, 140)
[node name="Chunk_Rettilineo_46" parent="." unique_id=1085962673 instance=ExtResource("1_q7xqk")] [node name="Chunk_Rettilineo_46" parent="." unique_id=1619269244 instance=ExtResource("1_q7xqk")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -340, 0, 140) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -340, 0, 140)
[node name="Chunk_Curva_1" parent="." unique_id=1316208881 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_1" parent="." unique_id=480671107 instance=ExtResource("2_nofk3")]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -160, 0, -20) transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -160, 0, -20)
[node name="Chunk_Curva_2" parent="." unique_id=2067726409 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_2" parent="." unique_id=1364313697 instance=ExtResource("2_nofk3")]
transform = Transform3D(1.1924881e-08, 0, 1, 0, 1, 0, -1, 0, 1.1924881e-08, -200, 0, -140) transform = Transform3D(1.1924881e-08, 0, 1, 0, 1, 0, -1, 0, 1.1924881e-08, -200, 0, -140)
[node name="Chunk_Curva_4" parent="." unique_id=1752656829 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_4" parent="." unique_id=1462911537 instance=ExtResource("2_nofk3")]
transform = Transform3D(1.1924881e-08, 0, 1, 0, 1, 0, -1, 0, 1.1924881e-08, -300, 0, -300) transform = Transform3D(1.1924881e-08, 0, 1, 0, 1, 0, -1, 0, 1.1924881e-08, -300, 0, -300)
[node name="Chunk_Curva_5" parent="." unique_id=1625275116 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_5" parent="." unique_id=917175715 instance=ExtResource("2_nofk3")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -420, 0, -300) transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -420, 0, -300)
[node name="Chunk_Curva_7" parent="." unique_id=739938188 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_7" parent="." unique_id=1233217696 instance=ExtResource("2_nofk3")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -540, 0, -180) transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -540, 0, -180)
[node name="Chunk_Curva_8" parent="." unique_id=126876831 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_8" parent="." unique_id=1633518535 instance=ExtResource("2_nofk3")]
transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, -540, 0, -20) transform = Transform3D(1.3113416e-07, 0, -1, 0, 1, 0, 1, 0, 1.3113416e-07, -540, 0, -20)
[node name="Chunk_Curva_9" parent="." unique_id=1172712422 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_9" parent="." unique_id=314246595 instance=ExtResource("2_nofk3")]
transform = Transform3D(-4.371138e-08, 0, 1, 0, 1, 0, -1, 0, -4.371138e-08, -480, 0, 20) transform = Transform3D(-4.371138e-08, 0, 1, 0, 1, 0, -1, 0, -4.371138e-08, -480, 0, 20)
[node name="Chunk_Curva_12" parent="." unique_id=316439411 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_12" parent="." unique_id=145961778 instance=ExtResource("2_nofk3")]
transform = Transform3D(-4.3711395e-08, 0, -1, 0, 1, 0, 1, 0, -4.3711395e-08, -440, 0, 120) transform = Transform3D(-4.3711395e-08, 0, -1, 0, 1, 0, 1, 0, -4.3711395e-08, -440, 0, 120)
[node name="Chunk_Curva_10" parent="." unique_id=1052696282 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_10" parent="." unique_id=334140980 instance=ExtResource("2_nofk3")]
transform = Transform3D(-4.371138e-08, 0, 1, 0, 1, 0, -1, 0, -4.371138e-08, 20, 0, 20) transform = Transform3D(-4.371138e-08, 0, 1, 0, 1, 0, -1, 0, -4.371138e-08, 20, 0, 20)
[node name="Chunk_Curva_11" parent="." unique_id=927523681 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_11" parent="." unique_id=692641914 instance=ExtResource("2_nofk3")]
transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 20, 0, 120) transform = Transform3D(1, 0, -7.1054274e-15, 0, 1, 0, 7.1054274e-15, 0, 1, 20, 0, 120)
[node name="Chunk_Curva_6" parent="." unique_id=175689326 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_6" parent="." unique_id=2071515822 instance=ExtResource("2_nofk3")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -460, 0, -220) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -460, 0, -220)
[node name="Chunk_Curva_3" parent="." unique_id=531270958 instance=ExtResource("2_nofk3")] [node name="Chunk_Curva_3" parent="." unique_id=1054028917 instance=ExtResource("2_nofk3")]
transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -260, 0, -180) transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -260, 0, -180)
[node name="TestScogliera11" parent="." unique_id=1247128389 instance=ExtResource("4_ikcvm")] [node name="TestScogliera11" parent="." unique_id=1247128389 instance=ExtResource("4_ikcvm")]
@@ -344,154 +317,131 @@ transform = Transform3D(2.913016, -2.5885558, -2.3679771, 1.7589248, 3.740691, -
material_override = SubResource("ShaderMaterial_ch5ch") material_override = SubResource("ShaderMaterial_ch5ch")
mesh = SubResource("ArrayMesh_l8a21") mesh = SubResource("ArrayMesh_l8a21")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_v2ie4")
[node name="rock4" type="MeshInstance3D" parent="TestScogliera11" unique_id=895276240] [node name="rock4" type="MeshInstance3D" parent="TestScogliera11" unique_id=895276240]
transform = Transform3D(2.913016, -2.5885558, -2.3679771, 1.7589248, 3.740691, -1.925361, 3.035477, 0.3165602, 3.388107, 6.0000153, -4, 40) transform = Transform3D(2.913016, -2.5885558, -2.3679771, 1.7589248, 3.740691, -1.925361, 3.035477, 0.3165602, 3.388107, 6.0000153, -4, 40)
material_override = SubResource("ShaderMaterial_ch5ch") material_override = SubResource("ShaderMaterial_ch5ch")
mesh = SubResource("ArrayMesh_l8a21") mesh = SubResource("ArrayMesh_l8a21")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_v2ie4")
[node name="rock6" type="MeshInstance3D" parent="TestScogliera11" unique_id=1509746797] [node name="rock6" type="MeshInstance3D" parent="TestScogliera11" unique_id=1509746797]
transform = Transform3D(2.913016, -2.5885558, -2.3679774, 0.0055351257, 3.0812535, -3.3614655, 3.5082626, 2.144495, 1.9715067, 6.0000763, -3, 44) transform = Transform3D(2.913016, -2.5885558, -2.3679774, 0.0055351257, 3.0812535, -3.3614655, 3.5082626, 2.144495, 1.9715067, 6.0000763, -3, 44)
material_override = SubResource("ShaderMaterial_ch5ch") material_override = SubResource("ShaderMaterial_ch5ch")
mesh = SubResource("ArrayMesh_l8a21") mesh = SubResource("ArrayMesh_l8a21")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_v2ie4")
[node name="rock5" type="MeshInstance3D" parent="TestScogliera11" unique_id=1279177057] [node name="rock5" type="MeshInstance3D" parent="TestScogliera11" unique_id=1279177057]
transform = Transform3D(3.0354762, 0.31656054, 3.3881073, 1.7589251, 3.7406912, -1.925361, -2.913017, 2.5885568, 2.3679774, 38.41423, -4, 54.71814) transform = Transform3D(3.0354762, 0.31656054, 3.3881073, 1.7589251, 3.7406912, -1.925361, -2.913017, 2.5885568, 2.3679774, 38.41423, -4, 54.71814)
material_override = SubResource("ShaderMaterial_ch5ch") material_override = SubResource("ShaderMaterial_ch5ch")
mesh = SubResource("ArrayMesh_l8a21") mesh = SubResource("ArrayMesh_l8a21")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_v2ie4")
[node name="rock7" type="MeshInstance3D" parent="TestScogliera11" unique_id=2114324890] [node name="rock7" type="MeshInstance3D" parent="TestScogliera11" unique_id=2114324890]
transform = Transform3D(2.1781008, 0.97574186, 3.8855383, 1.7589254, 3.7406917, -1.9253614, -3.5993977, 2.4184222, 1.4103843, 38.133926, -4, -34.66427) transform = Transform3D(2.1781008, 0.97574186, 3.8855383, 1.7589254, 3.7406917, -1.9253614, -3.5993977, 2.4184222, 1.4103843, 38.133926, -4, -34.66427)
material_override = SubResource("ShaderMaterial_ch5ch") material_override = SubResource("ShaderMaterial_ch5ch")
mesh = SubResource("ArrayMesh_l8a21") mesh = SubResource("ArrayMesh_l8a21")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_v2ie4")
[node name="rock3" type="MeshInstance3D" parent="TestScogliera11" unique_id=1494072531] [node name="rock3" type="MeshInstance3D" parent="TestScogliera11" unique_id=1494072531]
transform = Transform3D(2.913016, -2.5885558, -2.3679771, 1.7589248, 3.740691, -1.925361, 3.035477, 0.3165602, 3.388107, 6, -4, 0) transform = Transform3D(2.913016, -2.5885558, -2.3679771, 1.7589248, 3.740691, -1.925361, 3.035477, 0.3165602, 3.388107, 6, -4, 0)
material_override = SubResource("ShaderMaterial_ch5ch") material_override = SubResource("ShaderMaterial_ch5ch")
mesh = SubResource("ArrayMesh_l8a21") mesh = SubResource("ArrayMesh_l8a21")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_v2ie4")
[node name="rock16" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=347029847] [node name="rock16" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=347029847]
transform = Transform3D(0.23946106, -1.2754766, -0.46844727, 1.5220041, 0.26874697, -1.814587, 1.6465685, -0.06292316, 1.7454385, -3.050129, -0.5790291, -3.199524) transform = Transform3D(0.23946106, -1.2754766, -0.46844727, 1.5220041, 0.26874697, -1.814587, 1.6465685, -0.06292316, 1.7454385, -3.050129, -0.5790291, -3.199524)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock18" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=130439352] [node name="rock18" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=130439352]
transform = Transform3D(0.17787011, -0.94707805, -0.34790555, 1.1305349, 0.19955242, -1.3476548, 1.2230608, -0.04672217, 1.2962992, -1.1523705, -0.38111687, -1.0813046) transform = Transform3D(0.17787011, -0.94707805, -0.34790555, 1.1305349, 0.19955242, -1.3476548, 1.2230608, -0.04672217, 1.2962992, -1.1523705, -0.38111687, -1.0813046)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock17" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1850292512] [node name="rock17" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1850292512]
transform = Transform3D(2.1173303, -0.33210695, 0.9516518, -0.69431937, 1.124396, 1.9371831, -0.7306553, -2.0308774, 0.9168996, 7.383671, -7.627653, -6.3615074) transform = Transform3D(2.1173303, -0.33210695, 0.9516518, -0.69431937, 1.124396, 1.9371831, -0.7306553, -2.0308774, 0.9168996, 7.383671, -7.627653, -6.3615074)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock19" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=2072497245] [node name="rock19" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=2072497245]
transform = Transform3D(0.22987728, 2.5601773, -1.1782335, 4.544053, -0.12485714, 0.09851941, 0.035155393, -0.6021559, -5.029905, 9.284023, -9.808268, -3.8558292) transform = Transform3D(0.22987728, 2.5601773, -1.1782335, 4.544053, -0.12485714, 0.09851941, 0.035155393, -0.6021559, -5.029905, 9.284023, -9.808268, -3.8558292)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock20" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=518224984] [node name="rock20" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=518224984]
transform = Transform3D(0.31545222, 1.6085112, -0.31950206, -1.1333144, -0.021341413, -1.2263948, -1.185322, 0.4484822, 1.0875556, -4.899601, -0.1298027, -4.9920826) transform = Transform3D(0.31545222, 1.6085112, -0.31950206, -1.1333144, -0.021341413, -1.2263948, -1.185322, 0.4484822, 1.0875556, -4.899601, -0.1298027, -4.9920826)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock21" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=253597007] [node name="rock21" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=253597007]
transform = Transform3D(0.23946118, -1.2754766, -0.46844727, 1.5220041, 0.26874697, -1.8145871, 1.6465687, -0.06292316, 1.7454385, 2.7891235, 0.029928207, 3.3180733) transform = Transform3D(0.23946118, -1.2754766, -0.46844727, 1.5220041, 0.26874697, -1.8145871, 1.6465687, -0.06292316, 1.7454385, 2.7891235, 0.029928207, 3.3180733)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock22" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1102596567] [node name="rock22" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1102596567]
transform = Transform3D(0.17787015, -0.94707805, -0.34790558, 1.1305349, 0.19955243, -1.3476548, 1.2230611, -0.046722144, 1.2962995, 4.686886, 0.22784042, 5.4362946) transform = Transform3D(0.17787015, -0.94707805, -0.34790558, 1.1305349, 0.19955243, -1.3476548, 1.2230611, -0.046722144, 1.2962995, 4.686886, 0.22784042, 5.4362946)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock23" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1322697836] [node name="rock23" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1322697836]
transform = Transform3D(0.31545222, 1.6085112, -0.31950217, -1.1333144, -0.021341413, -1.2263949, -1.185322, 0.4484822, 1.0875558, 0.9396553, 0.4791546, 1.5255146) transform = Transform3D(0.31545222, 1.6085112, -0.31950217, -1.1333144, -0.021341413, -1.2263949, -1.185322, 0.4484822, 1.0875558, 0.9396553, 0.4791546, 1.5255146)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock24" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=676636294] [node name="rock24" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=676636294]
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)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock30" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1244457198] [node name="rock30" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1244457198]
transform = Transform3D(2.95122, 0.39661664, -0.70076674, -0.9003483, 0.03725023, -2.970834, -1.3322873, 0.8533933, 0.45535922, -3.1244316, -2.2981586, -6.607424) transform = Transform3D(2.95122, 0.39661664, -0.70076674, -0.9003483, 0.03725023, -2.970834, -1.3322873, 0.8533933, 0.45535922, -3.1244316, -2.2981586, -6.607424)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock31" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=841586517] [node name="rock31" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=841586517]
transform = Transform3D(1.6170461, 0.2011674, -0.30015528, -0.32557905, 0.16419007, -1.8376789, -0.2911858, 0.93356013, 0.38788074, -1.4185104, -3.8669147, -8.096828) transform = Transform3D(1.6170461, 0.2011674, -0.30015528, -0.32557905, 0.16419007, -1.8376789, -0.2911858, 0.93356013, 0.38788074, -1.4185104, -3.8669147, -8.096828)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock26" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1290663072] [node name="rock26" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=1290663072]
transform = Transform3D(-1.5694935, 0.51842076, -0.23839211, 0.07174307, -0.51288, -1.5876751, -0.56607735, -1.5023632, 0.45974275, 7.6919403, 0.80745316, 8.331938) transform = Transform3D(-1.5694935, 0.51842076, -0.23839211, 0.07174307, -0.51288, -1.5876751, -0.56607735, -1.5023632, 0.45974275, 7.6919403, 0.80745316, 8.331938)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock27" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=248679073] [node name="rock27" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=248679073]
transform = Transform3D(-1.8396242, -0.65516675, -1.0345535, -0.73210335, 1.5481329, 3.4819298, -0.08746308, 0.8216777, -7.3852544, 7.342827, -4.9998684, 6.5849457) transform = Transform3D(-1.8396242, -0.65516675, -1.0345535, -0.73210335, 1.5481329, 3.4819298, -0.08746308, 0.8216777, -7.3852544, 7.342827, -4.9998684, 6.5849457)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock29" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=2033080427] [node name="rock29" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=2033080427]
transform = Transform3D(-1.9142685, -0.27822912, -1.7450013, -0.50237304, 0.702086, 7.338065, -0.10508183, 1.711951, -3.2930079, 11.5289345, -14.807566, -9.919086) transform = Transform3D(-1.9142685, -0.27822912, -1.7450013, -0.50237304, 0.702086, 7.338065, -0.10508183, 1.711951, -3.2930079, 11.5289345, -14.807566, -9.919086)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="rock28" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=223075605] [node name="rock28" type="MeshInstance3D" parent="TestScogliera11/rock3" unique_id=223075605]
transform = Transform3D(0.8527417, -1.6788404, 0.81632006, -0.8228054, -0.18546972, 7.4428177, -1.5886047, -0.8051172, -3.416758, 14.498337, -12.282011, 4.1561813) transform = Transform3D(0.8527417, -1.6788404, 0.81632006, -0.8228054, -0.18546972, 7.4428177, -1.5886047, -0.8051172, -3.416758, 14.498337, -12.282011, 4.1561813)
material_override = SubResource("ShaderMaterial_ftth4") material_override = SubResource("ShaderMaterial_ftth4")
mesh = SubResource("ArrayMesh_qp6sq") mesh = SubResource("ArrayMesh_qp6sq")
skeleton = NodePath("") skeleton = NodePath("")
surface_material_override/0 = SubResource("ShaderMaterial_87m0o")
[node name="TestScogliera12" parent="." unique_id=415847337 instance=ExtResource("4_ikcvm")] [node name="TestScogliera12" parent="." unique_id=415847337 instance=ExtResource("4_ikcvm")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -212, 0.11, 192.57) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -212, 0.11, 192.57)
@@ -503,3 +453,15 @@ transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -108
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 54, -5.0000005, 12) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 54, -5.0000005, 12)
mesh = SubResource("PlaneMesh_cp4eh") mesh = SubResource("PlaneMesh_cp4eh")
surface_material_override/0 = ExtResource("5_mcxqp") surface_material_override/0 = ExtResource("5_mcxqp")
[node name="Chunck_M_N-O-E-S1" parent="." unique_id=515911998 instance=ExtResource("8_cp4eh")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -240, 0, -240)
[node name="Chunk_Rettilineo_F" parent="." unique_id=2018530257 instance=ExtResource("9_ch5ch")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -180, 0, -80)
[node name="Chunk_Rettilineo_F3" parent="." unique_id=1719977594 instance=ExtResource("9_ch5ch")]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -280, 0, -240)
[node name="Chunk_Rettilineo_F2" parent="." unique_id=1426792016 instance=ExtResource("9_ch5ch")]
transform = Transform3D(1.7682972e-07, 0, -0.9999999, 0, 1, 0, 0.9999999, 0, 1.7682972e-07, -120, 0, 0)

View File

@@ -3,6 +3,32 @@
[ext_resource type="PackedScene" uid="uid://dopxtbmauwr0n" path="res://Assets/Test/Colonnina_Blockout.fbx" id="1_iaqs2"] [ext_resource type="PackedScene" uid="uid://dopxtbmauwr0n" path="res://Assets/Test/Colonnina_Blockout.fbx" id="1_iaqs2"]
[ext_resource type="Material" uid="uid://da8erd0d83kog" path="res://Materials/Palette_Cel.tres" id="2_hqihs"] [ext_resource type="Material" uid="uid://da8erd0d83kog" path="res://Materials/Palette_Cel.tres" id="2_hqihs"]
[ext_resource type="Texture2D" uid="uid://cdlgd0h5qeb7k" path="res://Assets/Textures/Palette_train.png" id="3_jfj3v"] [ext_resource type="Texture2D" uid="uid://cdlgd0h5qeb7k" path="res://Assets/Textures/Palette_train.png" id="3_jfj3v"]
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="3_ptdo2"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_dg33q"]
render_priority = 0
shader = ExtResource("3_ptdo2")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lrklx"]
render_priority = 0
shader = ExtResource("3_ptdo2")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bwl3q"]
render_priority = 0
shader = ExtResource("3_ptdo2")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_n0srh"]
render_priority = 0
shader = ExtResource("3_ptdo2")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0mbrm"]
render_priority = 0
shader = ExtResource("3_ptdo2")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6tlqt"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6tlqt"]
specular_mode = 1 specular_mode = 1
@@ -14,27 +40,42 @@ emission_enabled = true
emission_energy_multiplier = 8.0 emission_energy_multiplier = 8.0
emission_texture = ExtResource("3_jfj3v") emission_texture = ExtResource("3_jfj3v")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_7dodf"]
render_priority = 0
shader = ExtResource("3_ptdo2")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_63xe0"]
render_priority = 0
shader = ExtResource("3_ptdo2")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[node name="ArtTest3" unique_id=143340255 instance=ExtResource("1_iaqs2")] [node name="ArtTest3" unique_id=143340255 instance=ExtResource("1_iaqs2")]
[node name="Empty" parent="." index="0" unique_id=1671039315] [node name="Empty" parent="." index="0" unique_id=1399041374]
transform = Transform3D(50, 0, 0, 0, -2.1855694e-06, 50, 0, -50, -2.1855694e-06, 0, 0, 0) transform = Transform3D(50, 0, 0, 0, -2.1855694e-06, 50, 0, -50, -2.1855694e-06, 0, 0, 0)
[node name="Cube_004" parent="Empty" index="0" unique_id=1602644254] [node name="Cube_004" parent="Empty" index="0" unique_id=1076888931]
material_override = ExtResource("2_hqihs") material_override = ExtResource("2_hqihs")
material_overlay = SubResource("ShaderMaterial_dg33q")
[node name="Cube_005" parent="Empty" index="1" unique_id=1550621633] [node name="Cube_005" parent="Empty" index="1" unique_id=257441775]
material_override = ExtResource("2_hqihs") material_override = ExtResource("2_hqihs")
material_overlay = SubResource("ShaderMaterial_lrklx")
[node name="Cube_006" parent="Empty" index="2" unique_id=1497731252] [node name="Cube_006" parent="Empty" index="2" unique_id=1211401951]
material_override = ExtResource("2_hqihs") material_override = ExtResource("2_hqihs")
material_overlay = SubResource("ShaderMaterial_bwl3q")
[node name="Cube_007" parent="Empty" index="3" unique_id=259390191] [node name="Cube_007" parent="Empty" index="3" unique_id=323750734]
material_override = ExtResource("2_hqihs") material_override = ExtResource("2_hqihs")
material_overlay = SubResource("ShaderMaterial_n0srh")
[node name="Cube_008" parent="Empty" index="4" unique_id=1357576798] [node name="Cube_008" parent="Empty" index="4" unique_id=2097566020]
material_override = ExtResource("2_hqihs") material_override = ExtResource("2_hqihs")
material_overlay = SubResource("ShaderMaterial_0mbrm")
[node name="Cube_009" parent="Empty" index="5" unique_id=1102627943] [node name="Cube_009" parent="Empty" index="5" unique_id=264106945]
material_override = SubResource("StandardMaterial3D_6tlqt") material_override = SubResource("StandardMaterial3D_6tlqt")
[node name="OmniLight3D" type="OmniLight3D" parent="Empty/Cube_009" index="0" unique_id=1295876317] [node name="OmniLight3D" type="OmniLight3D" parent="Empty/Cube_009" index="0" unique_id=1295876317]
@@ -46,8 +87,10 @@ omni_range = 15.0
omni_attenuation = 2.621 omni_attenuation = 2.621
omni_shadow_mode = 0 omni_shadow_mode = 0
[node name="Cube_011" parent="Empty" index="6" unique_id=556675018] [node name="Cube_011" parent="Empty" index="6" unique_id=1497976141]
material_override = ExtResource("2_hqihs") material_override = ExtResource("2_hqihs")
material_overlay = SubResource("ShaderMaterial_7dodf")
[node name="tetto 2" parent="Empty" index="7" unique_id=1317509787] [node name="tetto 2" parent="Empty" index="7" unique_id=1754192511]
material_override = ExtResource("2_hqihs") material_override = ExtResource("2_hqihs")
material_overlay = SubResource("ShaderMaterial_63xe0")

File diff suppressed because one or more lines are too long

View File

@@ -2,21 +2,28 @@
[ext_resource type="PackedScene" uid="uid://yjj64i1atwyg" path="res://Assets/Test/Main_Train.fbx" id="1_8k78i"] [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="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://cufolpn48xxmv" path="res://Materials/Treno2.tres" id="3_tf27f"]
[ext_resource type="Material" uid="uid://bu8wmlp0ffark" path="res://Materials/Treno3.tres" id="4_e08y7"] [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="PlaneMesh" id="PlaneMesh_8k78i"]
[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(0.59849787, 0.2744873, 0.018916829, 1)
emission_energy_multiplier = 5.87 emission_energy_multiplier = 14.84
[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(-0.85, 0, -1.2834644e-07, 0, 0.85, 0, 1.2834644e-07, 0, -0.85, 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) 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/0 = ExtResource("2_crne2")
surface_material_override/1 = ExtResource("3_tf27f") surface_material_override/1 = ExtResource("3_tf27f")
surface_material_override/2 = ExtResource("2_crne2") surface_material_override/2 = ExtResource("2_crne2")
@@ -132,19 +139,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

View File

@@ -1,6 +1,7 @@
[gd_scene format=3 uid="uid://qyml1s00773u"] [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://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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_m6haf"]
render_priority = 0 render_priority = 0
@@ -9,14 +10,24 @@ shader_parameter/albedo_color = Color(0.08235294, 0.105882354, 0.10980392, 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/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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 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"] [sub_resource type="BoxMesh" id="BoxMesh_w0ibq"]
size = Vector3(0.2, 0.2, 2) size = Vector3(0.2, 0.2, 2)
@@ -27,14 +38,24 @@ shader_parameter/albedo_color = Color(0.08061289, 0.10506997, 0.11154168, 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/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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_pp4r2"]
render_priority = 0 render_priority = 0
shader = ExtResource("1_ysg1u") shader = ExtResource("1_ysg1u")
@@ -42,16 +63,26 @@ shader_parameter/albedo_color = Color(0.2584173, 0.19781098, 0.10103748, 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/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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 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"] [sub_resource type="BoxMesh" id="BoxMesh_ysg1u"]
size = Vector3(3.705, 0.2, 0.565) size = Vector3(2.5, 0.15, 0.5)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_x2uev"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_x2uev"]
render_priority = 0 render_priority = 0
@@ -60,14 +91,24 @@ shader_parameter/albedo_color = Color(0.25882354, 0.19607843, 0.101960786, 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/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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_5u2u8"]
render_priority = 0 render_priority = 0
shader = ExtResource("1_ysg1u") shader = ExtResource("1_ysg1u")
@@ -75,11 +116,16 @@ shader_parameter/albedo_color = Color(0.22494644, 0.08867701, 0.01631488, 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 = 10.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)
shader_parameter/shadow_offset = 0.0 shader_parameter/shadow_offset = 0.0
shader_parameter/cast_shadow_strength = 0.6 shader_parameter/cast_shadow_strength = 0.6
shader_parameter/specular_size = 60.0
shader_parameter/specular_softness = 0.01
shader_parameter/specular_intensity_multiplier = 0.5
shader_parameter/emission_color = Color(0, 0, 0, 1) shader_parameter/emission_color = Color(0, 0, 0, 1)
shader_parameter/emission_energy = 0.0 shader_parameter/emission_energy = 0.0
@@ -89,23 +135,27 @@ size = Vector3(3.705, 0.2, 1.92)
[node name="Rotaie2" type="Node3D" unique_id=1464572050] [node name="Rotaie2" type="Node3D" unique_id=1464572050]
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=1040579890] [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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.7, 0.214, 0)
material_override = SubResource("ShaderMaterial_m6haf") material_override = SubResource("ShaderMaterial_m6haf")
material_overlay = SubResource("ShaderMaterial_duyun")
mesh = SubResource("BoxMesh_w0ibq") mesh = SubResource("BoxMesh_w0ibq")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="." unique_id=1870708237] [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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7, 0.214, 0)
material_override = SubResource("ShaderMaterial_fttrp") material_override = SubResource("ShaderMaterial_fttrp")
material_overlay = SubResource("ShaderMaterial_hb1ej")
mesh = SubResource("BoxMesh_w0ibq") mesh = SubResource("BoxMesh_w0ibq")
[node name="MeshInstance3D3" type="MeshInstance3D" parent="." unique_id=170245195] [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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, 0.5)
material_override = SubResource("ShaderMaterial_pp4r2") material_override = SubResource("ShaderMaterial_pp4r2")
material_overlay = SubResource("ShaderMaterial_pur2n")
mesh = SubResource("BoxMesh_ysg1u") mesh = SubResource("BoxMesh_ysg1u")
[node name="MeshInstance3D4" type="MeshInstance3D" parent="." unique_id=1389288735] [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) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.05, -0.5)
material_override = SubResource("ShaderMaterial_x2uev") material_override = SubResource("ShaderMaterial_x2uev")
material_overlay = SubResource("ShaderMaterial_qv8m2")
mesh = SubResource("BoxMesh_ysg1u") mesh = SubResource("BoxMesh_ysg1u")
[node name="MeshInstance3D5" type="MeshInstance3D" parent="." unique_id=1376217081] [node name="MeshInstance3D5" type="MeshInstance3D" parent="." unique_id=1376217081]

View File

@@ -2,8 +2,14 @@
[ext_resource type="PackedScene" uid="uid://bcsbg7br73nqc" path="res://Assets/Test/ToriGate.fbx" id="1_6kg7a"] [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://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"] [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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_3mqnu"]
render_priority = 0 render_priority = 0
shader = ExtResource("2_1ibku") shader = ExtResource("2_1ibku")
@@ -11,6 +17,11 @@ shader_parameter/albedo_color = Color(1, 1, 1, 1)
shader_parameter/albedo_texture = ExtResource("3_6126s") 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/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)
@@ -21,5 +32,6 @@ shader_parameter/emission_energy = 0.0
[node name="Tori1" unique_id=1219093134 instance=ExtResource("1_6kg7a")] [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") surface_material_override/0 = SubResource("ShaderMaterial_3mqnu")

File diff suppressed because one or more lines are too long

26
Scenes/Wind.gdshader Normal file
View File

@@ -0,0 +1,26 @@
shader_type spatial;
render_mode unshaded;
// --- PARAMETRI ---
uniform float time_scale = 3.0;
uniform float wave_amplitude = 0.5; // Quanto curva a destra/sinistra
uniform float wave_frequency = 1.0; // Ogni quanto fa la curva
void vertex() {
// Creiamo un offset unico per ogni particella in modo che non si muovano tutte uguali
float random_seed_offset = INSTANCE_CUSTOM.x * 100.0;
float scaled_time = (TIME + random_seed_offset) * time_scale;
// Applichiamo SOLO la curva morbida all'asse X (o Z, a seconda di come orienti la scena)
// Usiamo VERTEX.y per far sì che la curva si propaghi lungo tutta la lunghezza della scia
VERTEX.x += sin(VERTEX.y * wave_frequency + scaled_time) * wave_amplitude;
// Niente più "VERTEX.y += t;", quindi niente più teletrasporti!
}
void fragment() {
// Il colore e l'alpha (per lo spawn dolce e la morte lenta)
// vengono comandati dalla Color Ramp del GPUParticles3D!
ALBEDO = COLOR.rgb;
ALPHA = COLOR.a;
}

1
Scenes/Wind.gdshader.uid Normal file
View File

@@ -0,0 +1 @@
uid://ch7g8q4utqci8

26
Scenes/Wind.tscn Normal file
View File

@@ -0,0 +1,26 @@
[gd_scene format=3 uid="uid://btljgq47ug1g5"]
[ext_resource type="Shader" uid="uid://ch7g8q4utqci8" path="res://Scenes/Wind.gdshader" id="1_ceua7"]
[sub_resource type="TubeTrailMesh" id="TubeTrailMesh_d85b2"]
custom_aabb = AABB(20, 20, 20, 0, 0, 0)
radius = 0.04
section_length = 0.5
[sub_resource type="ShaderMaterial" id="ShaderMaterial_uwdnm"]
render_priority = 0
shader = ExtResource("1_ceua7")
shader_parameter/color = Color(1, 1, 1, 0.40392157)
shader_parameter/fade_time = 5.0
shader_parameter/time_scale = 3.0
shader_parameter/wave_amplitude = 0.1
shader_parameter/wave_frequency = 1.0
shader_parameter/wave_length = 2.0
shader_parameter/wave_count = 3.0
shader_parameter/loop_radius = 0.0
shader_parameter/loop_count = 0.0
[node name="MeshInstance3D" type="MeshInstance3D" unique_id=202410879]
transform = Transform3D(1, 0, 0, 0, -4.3711385e-08, -0.9999999, 0, 0.9999999, -4.3711385e-08, 0, 0, 0)
mesh = SubResource("TubeTrailMesh_d85b2")
surface_material_override/0 = SubResource("ShaderMaterial_uwdnm")

View File

@@ -0,0 +1,19 @@
shader_type spatial;
// "unshaded" rende il materiale immune alle altre luci della scena
render_mode unshaded, depth_draw_opaque;
uniform vec4 shadow_color : source_color = vec4(0.0, 0.0, 0.0, 0.6);
uniform float radius : hint_range(0.0, 1.0) = 0.45;
uniform float softness : hint_range(0.0, 1.0) = 0.1;
void fragment() {
// Calcola la distanza del pixel dal centro del piano (UV 0.5, 0.5)
float dist = distance(UV, vec2(0.5, 0.5));
// smoothstep crea una transizione morbida per i bordi dell'ombra
float mask = smoothstep(radius, radius - softness, dist);
// Applica il colore e gestisce la trasparenza usando la maschera
ALBEDO = shadow_color.rgb;
ALPHA = mask * shadow_color.a;
}

View File

@@ -0,0 +1 @@
uid://cksojna7cbjpk

31
Scenes/house_test_4.tscn Normal file
View File

@@ -0,0 +1,31 @@
[gd_scene format=3 uid="uid://mj15bepbgy02"]
[ext_resource type="PackedScene" uid="uid://bihrb0alp60a4" path="res://Assets/Meshes/House/HouseTest_4.fbx" id="1_03u1s"]
[ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://Materials/House.tres" id="2_n4qy2"]
[ext_resource type="Shader" uid="uid://do0tct77dfhef" path="res://Shaders/snow.gdshader" id="3_n4qy2"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_0x3ja"]
render_priority = 0
shader = ExtResource("3_n4qy2")
shader_parameter/snow_color = Color(0.95, 0.98, 1, 1)
[sub_resource type="Gradient" id="Gradient_n4qy2"]
offsets = PackedFloat32Array(0.9980237, 1)
colors = PackedColorArray(0, 0, 0, 0.5882353, 0, 0, 0, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_0x3ja"]
gradient = SubResource("Gradient_n4qy2")
fill = 2
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(0.9017094, 0.12820514)
[node name="HouseTest_4" unique_id=462882013 instance=ExtResource("1_03u1s")]
[node name="Cube_008" parent="." index="0" unique_id=2087805025]
material_override = ExtResource("2_n4qy2")
material_overlay = SubResource("ShaderMaterial_0x3ja")
[node name="Shadow" type="Decal" parent="." index="1" unique_id=30846848]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.059038162, 0, 0)
size = Vector3(9, 0.5, 9)
texture_albedo = SubResource("GradientTexture2D_0x3ja")

View File

@@ -1,17 +0,0 @@
[gd_scene format=3 uid="uid://bdhphg2oi4n1v"]
[ext_resource type="PackedScene" uid="uid://bbdaxcrf48xsr" path="res://Assets/Meshes/House/Test_NoRoof.fbx" id="1_k6nmq"]
[ext_resource type="Material" uid="uid://biaudrjlfoflm" path="res://Materials/House.tres" id="2_si57c"]
[node name="Test_NoRoof" unique_id=1047340045 instance=ExtResource("1_k6nmq")]
[node name="Cube_005" parent="." index="0" unique_id=1082356799]
surface_material_override/0 = ExtResource("2_si57c")
surface_material_override/1 = ExtResource("2_si57c")
surface_material_override/2 = ExtResource("2_si57c")
surface_material_override/3 = ExtResource("2_si57c")
surface_material_override/4 = ExtResource("2_si57c")
surface_material_override/5 = ExtResource("2_si57c")
surface_material_override/6 = ExtResource("2_si57c")
surface_material_override/7 = ExtResource("2_si57c")
surface_material_override/8 = ExtResource("2_si57c")

View File

@@ -15,6 +15,14 @@ extends Node3D
@export_group("Cinematic Mode") @export_group("Cinematic Mode")
@export var tempo_cambio_camera : float = 10.0 @export var tempo_cambio_camera : float = 10.0
# --- NUOVO: Variabili per lo Zoom Cinematico ---
@export_group("Zoom Isometrico")
@export var size_normale : float = 35.0
@export var size_zoom : float = 60.0
@export var tempo_zoom : float = 1.2
var is_zoomed : bool = false
var zoom_tween : Tween
var is_moving_enabled : bool = true var is_moving_enabled : bool = true
# --- Variabili Cinematic Mode --- # --- Variabili Cinematic Mode ---
@@ -64,6 +72,20 @@ func _input(event):
print("Cinematic Mode: DISATTIVATA") print("Cinematic Mode: DISATTIVATA")
return return
# --- NUOVO: TASTO Z: ZOOM DOLCE CAMERA ISOMETRICA ---
if event.keycode == KEY_Z and camera_iso:
is_zoomed = !is_zoomed
var target_size = size_zoom if is_zoomed else size_normale
# Se c'è già un'animazione in corso, fermala per evitare conflitti
if zoom_tween and zoom_tween.is_valid():
zoom_tween.kill()
zoom_tween = create_tween()
zoom_tween.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
zoom_tween.tween_property(camera_iso, "size", target_size, tempo_zoom)
return
# --- CONTROLLI MANUALI (1-5) --- # --- CONTROLLI MANUALI (1-5) ---
var intervento_manuale = false var intervento_manuale = false

5
Scripts/DatiBioma.gd Normal file
View File

@@ -0,0 +1,5 @@
extends Resource
class_name DatiBioma
@export var nome_bioma: String = "Nuovo Bioma"
@export var chunk_disponibili: Array[PackedScene]

1
Scripts/DatiBioma.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://c02bewqxt2epg

View File

@@ -5,6 +5,17 @@ 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)
# --- NUOVO: Rotazione del Sole ---
@export_group("Rotazione Sole (Gradi)")
@export var rotazione_sole_mattina: Vector3 = Vector3(-15.0, 45.0, 0.0)
@export var rotazione_sole_pomeriggio: Vector3 = Vector3(-75.0, 10.0, 0.0)
@export var rotazione_sole_notte: Vector3 = Vector3(-35.0, -120.0, 0.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 +26,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
@@ -24,6 +68,7 @@ extends Node3D
@export var materiale_nebbia: ShaderMaterial @export var materiale_nebbia: ShaderMaterial
@export var materiale_pioggia_gocce: StandardMaterial3D @export var materiale_pioggia_gocce: StandardMaterial3D
@export var materiale_nuvole: ShaderMaterial @export var materiale_nuvole: ShaderMaterial
@export var nodo_polvere: ColorRect
@export_group("Meteo (Pioggia & Fulmini)") @export_group("Meteo (Pioggia & Fulmini)")
@export var colore_mood_pioggia: Color = Color(0.5, 0.6, 0.7, 1.0) @export var colore_mood_pioggia: Color = Color(0.5, 0.6, 0.7, 1.0)
@@ -38,34 +83,41 @@ extends Node3D
@export_group("Cinematic Mode Ambiente") @export_group("Cinematic Mode Ambiente")
@export var intervallo_eventi_meteo: float = 8.0 @export var intervallo_eventi_meteo: float = 8.0
# --- NUOVO: PARAMETRI GOD RAYS ---
@export_group("God Rays") @export_group("God Rays")
@export var godray_scene: PackedScene @export var godray_scene: PackedScene
@export var max_rain_godrays: int = 8 @export var max_rain_godrays: int = 8
@export var godray_spawn_radius: float = 15.0 @export var godray_spawn_radius: float = 15.0
# --- NUOVE VARIABILI PER L'ISOMETRICA ---
# Sposta il centro in cui nascono i raggi (es. più a destra e più in alto)
@export var godray_spawn_offset: Vector3 = Vector3(15.0, 5.0, -15.0) @export var godray_spawn_offset: Vector3 = Vector3(15.0, 5.0, -15.0)
# Incliniamo i raggi per farli spiovere dall'alto a destra.
# (X negativa li inclina in avanti, Z li fa "stendere" diagonalmente sullo schermo)
@export var godray_rotation_degrees: Vector3 = Vector3(-45.0, 45.0, -30.0) @export var godray_rotation_degrees: Vector3 = Vector3(-45.0, 45.0, -30.0)
# Quanto in alto rispetto al suolo/treno devono nascere
@export var godray_spawn_height: float = 5.0 @export var godray_spawn_height: float = 5.0
# Quanto devono essere lunghi i raggi (scala Y) e larghi (scala X)
@export var godray_scale: Vector3 = Vector3(2.0, 6.0, 2.0) @export var godray_scale: Vector3 = Vector3(2.0, 6.0, 2.0)
@export_group("Lucciole")
@export var particelle_lucciole: GPUParticles3D
@export var quantita_lucciole: int = 60
@export var raggio_spawn_lucciole: float = 20.0
@export var altezza_spawn_lucciole: float = 3.0
@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
@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 sole: DirectionalLight3D = $DirectionalLight3D
@onready var ambiente: WorldEnvironment = $WorldEnvironment @onready var ambiente: WorldEnvironment = $WorldEnvironment
@onready var menu_giornata: OptionButton = $CanvasLayer/OptionButton @onready var menu_giornata: OptionButton = $CanvasLayer/OptionButton
@onready var bottone_pioggia: CheckButton = $CanvasLayer/CheckButtonPioggia @onready var bottone_pioggia: CheckButton = $CanvasLayer/CheckButtonPioggia
@onready var particelle_pioggia: GPUParticles3D = $SubViewportContainer/SubViewport/World/Camere/PioggiaCadente @onready var particelle_pioggia: GPUParticles3D = $SubViewportContainer/SubViewport/World/Camere/PioggiaCadente
# --- NUOVO: RIFERIMENTO AL NODO DELLE CAMERE PER FARLI MUOVERE COL TRENO ---
@onready var nodo_camere: Node3D = $SubViewportContainer/SubViewport/World/Camere @onready var nodo_camere: Node3D = $SubViewportContainer/SubViewport/World/Camere
@onready var luce_lampo: DirectionalLight3D = $LuceLampo @onready var luce_lampo: DirectionalLight3D = $LuceLampo
@onready var sprite_fulmine: Sprite3D = $SubViewportContainer/SubViewport/World/Camere/SpriteFulmine @onready var sprite_fulmine: Sprite3D = $SubViewportContainer/SubViewport/World/Camere/SpriteFulmine
@@ -78,6 +130,12 @@ var is_cinematic_mode: bool = false
var timer_cinematic_env: float = 0.0 var timer_cinematic_env: float = 0.0
var sto_cambiando_in_cinematic: bool = false var sto_cambiando_in_cinematic: bool = false
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: func _ready() -> void:
if menu_giornata: if menu_giornata:
menu_giornata.clear() menu_giornata.clear()
@@ -93,6 +151,33 @@ func _ready() -> void:
if particelle_pioggia: if particelle_pioggia:
particelle_pioggia.emitting = false particelle_pioggia.emitting = false
if particelle_lucciole:
particelle_lucciole.emitting = false
particelle_lucciole.amount = quantita_lucciole
var proc_mat = particelle_lucciole.process_material as ParticleProcessMaterial
if proc_mat:
proc_mat.emission_box_extents = Vector3(raggio_spawn_lucciole, altezza_spawn_lucciole, raggio_spawn_lucciole)
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)
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() _resetta_timer_fulmine()
func _input(event: InputEvent) -> void: func _input(event: InputEvent) -> void:
@@ -123,23 +208,24 @@ func _on_giornata_selezionata(index: int) -> void:
tween_giorno.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT) tween_giorno.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
tween_giorno.tween_property(self, "tempo_giorno", target_tempo, durata_transizione) tween_giorno.tween_property(self, "tempo_giorno", target_tempo, durata_transizione)
# --- NUOVO: SE E' MATTINA (Index 0), SPAWNA IL GODRAY ---
if index == 0: if index == 0:
trigger_morning() trigger_morning()
func _on_pioggia_toggled(toggled_on: bool) -> void: func _on_pioggia_toggled(toggled_on: bool) -> void:
if is_actively_snowing and toggled_on:
if bottone_pioggia:
bottone_pioggia.set_pressed_no_signal(false)
return
if not sto_cambiando_in_cinematic and is_cinematic_mode: if not sto_cambiando_in_cinematic and is_cinematic_mode:
is_cinematic_mode = false is_cinematic_mode = false
print("Ambiente Cinematic: DISATTIVATA (Pioggia cambiata manualmente)") print("Ambiente Cinematic: DISATTIVATA (Pioggia cambiata manualmente)")
# --- NUOVO: SALVIAMO LO STATO PRECEDENTE PER CAPIRE SE HA SMESSO ---
var stava_piovendo = is_raining var stava_piovendo = is_raining
is_raining = toggled_on is_raining = toggled_on
if particelle_pioggia: if particelle_pioggia:
particelle_pioggia.emitting = is_raining particelle_pioggia.emitting = is_raining
# --- NUOVO: SE STAVA PIOVENDO E ORA NON PIOVE PIÙ, SPAWNA TANTI GODRAYS ---
if stava_piovendo and not is_raining: if stava_piovendo and not is_raining:
trigger_after_rain() trigger_after_rain()
@@ -153,10 +239,20 @@ 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
var base_grad_top: Color
var base_grad_bot: Color
var base_grad_intensity: float
var base_rotazione_sole: Vector3 # <--- NUOVA VARIABILE
if is_raining: var tempesta_attiva = is_raining or is_actively_snowing
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)
if is_raining:
timer_prossimo_fulmine -= delta timer_prossimo_fulmine -= delta
if timer_prossimo_fulmine <= 0.0: if timer_prossimo_fulmine <= 0.0:
_scatena_fulmine() _scatena_fulmine()
@@ -175,17 +271,52 @@ 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)
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)
base_rotazione_sole = rotazione_sole_mattina.lerp(rotazione_sole_pomeriggio, t) # <--- INTERPOLAZIONE ROTAZIONE
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)
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)
base_rotazione_sole = rotazione_sole_pomeriggio.lerp(rotazione_sole_notte, t) # <--- INTERPOLAZIONE ROTAZIONE
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)
@@ -195,12 +326,26 @@ func _process(delta: float) -> void:
if sole: if sole:
sole.light_color = final_tint sole.light_color = final_tint
sole.rotation_degrees = base_rotazione_sole # <--- APPLICAZIONE DELLA ROTAZIONE
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:
@@ -213,6 +358,17 @@ func _process(delta: float) -> void:
materiale_nebbia.set_shader_parameter("night_intensity", night_val) materiale_nebbia.set_shader_parameter("night_intensity", night_val)
materiale_nebbia.set_shader_parameter("sun_color", final_tint) materiale_nebbia.set_shader_parameter("sun_color", final_tint)
var e_notte = tempo_giorno >= 2.5
if nodo_polvere:
nodo_polvere.visible = (not tempesta_attiva and not e_notte)
if particelle_lucciole:
particelle_lucciole.emitting = (not tempesta_attiva and e_notte)
if particelle_vento:
particelle_vento.emitting = (not tempesta_attiva and not e_notte)
func _genera_evento_meteo_casuale() -> void: func _genera_evento_meteo_casuale() -> void:
sto_cambiando_in_cinematic = true sto_cambiando_in_cinematic = true
@@ -225,12 +381,14 @@ func _genera_evento_meteo_casuale() -> void:
_on_giornata_selezionata(nuovo_orario) _on_giornata_selezionata(nuovo_orario)
elif scelta == 1: elif scelta == 1:
if not is_actively_snowing:
var piove = randf() > 0.5 var piove = randf() > 0.5
if bottone_pioggia: if bottone_pioggia:
bottone_pioggia.set_pressed_no_signal(piove) bottone_pioggia.set_pressed_no_signal(piove)
_on_pioggia_toggled(piove) _on_pioggia_toggled(piove)
elif scelta == 2: elif scelta == 2:
if not is_actively_snowing:
if not is_raining: if not is_raining:
if bottone_pioggia: if bottone_pioggia:
bottone_pioggia.set_pressed_no_signal(true) bottone_pioggia.set_pressed_no_signal(true)
@@ -275,16 +433,10 @@ func _scatena_fulmine() -> void:
if numero_scariche > 1: if numero_scariche > 1:
await get_tree().create_timer(randf_range(0.05, 0.15)).timeout await get_tree().create_timer(randf_range(0.05, 0.15)).timeout
# ==========================================
# --- FUNZIONI GOD RAYS INTEGRATE ---
# ==========================================
func trigger_morning() -> void: func trigger_morning() -> void:
# Quando è mattina spara un solo godray vicino al treno
spawn_single_godray() spawn_single_godray()
func trigger_after_rain() -> void: func trigger_after_rain() -> void:
# Evitiamo di farli spawnare se piove di notte (tempo_giorno >= 2.5)
if tempo_giorno < 2.5: if tempo_giorno < 2.5:
for i in range(max_rain_godrays): for i in range(max_rain_godrays):
spawn_single_godray() spawn_single_godray()
@@ -299,23 +451,63 @@ func spawn_single_godray() -> void:
var ray = godray_scene.instantiate() var ray = godray_scene.instantiate()
# --- LA MAGIA È QUI ---
# Invece di aggiungerli a "nodo_camere" (che si muove),
# li aggiungiamo al genitore delle camere (il nodo "World"), che è fermo!
var nodo_mondo = nodo_camere.get_parent() var nodo_mondo = nodo_camere.get_parent()
nodo_mondo.add_child(ray) nodo_mondo.add_child(ray)
# Calcoliamo una posizione casuale
var random_x = randf_range(-godray_spawn_radius, godray_spawn_radius) var random_x = randf_range(-godray_spawn_radius, godray_spawn_radius)
var random_z = randf_range(-godray_spawn_radius, godray_spawn_radius) var random_z = randf_range(-godray_spawn_radius, godray_spawn_radius)
# Usiamo la GLOBAL_POSITION: Il raggio prende le coordinate globali di dov'è la
# telecamera in QUESTO preciso millisecondo, e ci aggiunge il suo offset casuale.
# Da questo momento in poi, essendo figlio del Mondo, resterà immobile lì.
ray.global_position = nodo_camere.global_position + Vector3(random_x, godray_spawn_height, random_z) ray.global_position = nodo_camere.global_position + Vector3(random_x, godray_spawn_height, random_z)
# Li incliniamo tutti uguali per farli piovere dall'angolo
ray.rotation_degrees = godray_rotation_degrees ray.rotation_degrees = godray_rotation_degrees
# Li allunghiamo per farli sembrare veri fasci di luce
ray.scale = godray_scale ray.scale = godray_scale
func _on_snow_button_pressed():
is_snow_accumulated = !is_snow_accumulated
if bottone_nevicata:
bottone_nevicata.disabled = !is_snow_accumulated
if is_snow_accumulated and not is_actively_snowing:
_on_nevicata_button_pressed()
elif 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 bottone_pioggia:
bottone_pioggia.disabled = is_actively_snowing
if is_actively_snowing and is_raining:
bottone_pioggia.set_pressed_no_signal(false)
_on_pioggia_toggled(false)
if particelle_neve:
particelle_neve.emitting = is_actively_snowing
if overlay_nebbia_schermo and overlay_nebbia_schermo.material:
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
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)

View File

@@ -3,10 +3,8 @@ extends Node3D
@export_group("Riferimenti Base") @export_group("Riferimenti Base")
@export var path_treno: Path3D @export var path_treno: Path3D
@export_group("I 3 Biomi Principali") @export_group("I Tuoi Biomi")
@export var bioma_campagna: Array[PackedScene] @export var lista_biomi: Array[DatiBioma]
@export var bioma_foresta: Array[PackedScene]
@export var bioma_altro: Array[PackedScene]
@export_group("Impostazioni Griglia e Aree") @export_group("Impostazioni Griglia e Aree")
@export var dimensione_chunk: float = 20.0 @export var dimensione_chunk: float = 20.0
@@ -16,32 +14,30 @@ extends Node3D
var scacchiera: Dictionary = {} var scacchiera: Dictionary = {}
var ultima_pos_griglia_treno: Vector2i = Vector2i(999999, 999999) var ultima_pos_griglia_treno: Vector2i = Vector2i(999999, 999999)
var generatore_rumore: FastNoiseLite var generatore_rumore: FastNoiseLite
var generatore_altitudine: FastNoiseLite
var usa_terzo_bioma: bool = true var bioma_manuale_attivo: DatiBioma = null
var dropdown_biomi: OptionButton
# --- VARIABILI PER L'INTERFACCIA A SCHERMO ---
var lbl_bioma: Label var lbl_bioma: Label
var lbl_distanza: Label var lbl_distanza: Label
func _ready() -> void: func _ready() -> void:
if bioma_campagna.is_empty() or path_treno == null: if lista_biomi.is_empty() or path_treno == null: return
print("❌ ERRORE: Assegna almeno il 'Bioma Campagna' e il 'Path Treno' nell'Inspector!")
return
generatore_rumore = FastNoiseLite.new() generatore_rumore = FastNoiseLite.new()
generatore_rumore.noise_type = FastNoiseLite.TYPE_PERLIN generatore_rumore.noise_type = FastNoiseLite.TYPE_PERLIN
generatore_rumore.seed = randi() generatore_rumore.seed = randi()
generatore_rumore.frequency = scala_distretti generatore_rumore.frequency = scala_distretti
# Creiamo l'interfaccia a schermo! generatore_altitudine = FastNoiseLite.new()
generatore_altitudine.noise_type = FastNoiseLite.TYPE_PERLIN
generatore_altitudine.seed = randi()
generatore_altitudine.frequency = scala_distretti * 0.5
_crea_ui_gps() _crea_ui_gps()
_aggiorna_set_pieces() # Accende/Spegne i mega-templi all'avvio
print("✅ Generatore a Distretti Dinamici Pronto.") print("✅ Generatore a Distretti Dinamici Pronto.")
print("Premere il tasto 'B' per abilitare/disabilitare il terzo bioma.")
# --- NUOVA FUNZIONE: CREA LE SCRITTE A SCHERMO ---
# --- NUOVA FUNZIONE: CREA LE SCRITTE A SCHERMO (CORRETTA) ---
# --- NUOVA FUNZIONE: CREA LE SCRITTE A SCHERMO ---
func _crea_ui_gps() -> void: func _crea_ui_gps() -> void:
var canvas = CanvasLayer.new() var canvas = CanvasLayer.new()
canvas.layer = 10 canvas.layer = 10
@@ -57,30 +53,91 @@ func _crea_ui_gps() -> void:
vbox.size_flags_horizontal = Control.SIZE_SHRINK_END vbox.size_flags_horizontal = Control.SIZE_SHRINK_END
margin.add_child(vbox) margin.add_child(vbox)
# --- SCRITTA BIOMA ATTUALE (Titolo) ---
lbl_bioma = Label.new() lbl_bioma = Label.new()
lbl_bioma.add_theme_font_size_override("font_size", 10) # <--- QUI CAMBI LA GRANDEZZA (Prima era 26) lbl_bioma.add_theme_font_size_override("font_size", 10)
lbl_bioma.add_theme_color_override("font_color", Color(1, 0.9, 0.4)) lbl_bioma.add_theme_color_override("font_color", Color(1, 0.9, 0.4))
lbl_bioma.add_theme_color_override("font_outline_color", Color.BLACK) lbl_bioma.add_theme_color_override("font_outline_color", Color.BLACK)
lbl_bioma.add_theme_constant_override("outline_size", 3) # Ho ridotto anche il bordo nero per non impastare il testo piccolo lbl_bioma.add_theme_constant_override("outline_size", 3)
lbl_bioma.text = "📍 Avvio GPS..." lbl_bioma.text = "📍 Avvio GPS..."
vbox.add_child(lbl_bioma) vbox.add_child(lbl_bioma)
# --- SCRITTA METRI MANCANTI (Sottotitolo) ---
lbl_distanza = Label.new() lbl_distanza = Label.new()
lbl_distanza.add_theme_font_size_override("font_size", 8) # <--- QUI CAMBI LA GRANDEZZA (Prima era 20) lbl_distanza.add_theme_font_size_override("font_size", 8)
lbl_distanza.add_theme_color_override("font_outline_color", Color.BLACK) lbl_distanza.add_theme_color_override("font_outline_color", Color.BLACK)
lbl_distanza.add_theme_constant_override("outline_size", 3) # Bordo ridotto proporzionalmente lbl_distanza.add_theme_constant_override("outline_size", 3)
lbl_distanza.text = "Calcolo tragitto..." lbl_distanza.text = "Calcolo tragitto..."
vbox.add_child(lbl_distanza) vbox.add_child(lbl_distanza)
var hbox = HBoxContainer.new()
vbox.add_child(hbox)
dropdown_biomi = OptionButton.new()
dropdown_biomi.add_item("Dinamico (Procedurale)")
for bioma in lista_biomi:
dropdown_biomi.add_item(bioma.nome_bioma)
dropdown_biomi.item_selected.connect(_on_dropdown_biomi_item_selected)
hbox.add_child(dropdown_biomi)
_radar_bioma_treno() _radar_bioma_treno()
func _input(event: InputEvent) -> void: # --- GESTIONE DEI MEGA-PEZZI (SET PIECES) ---
if event is InputEventKey and event.pressed and not event.echo: # --- GESTIONE DEI MEGA-PEZZI (SET PIECES) ---
if event.keycode == KEY_B: func _aggiorna_set_pieces() -> void:
usa_terzo_bioma = !usa_terzo_bioma var set_pieces = get_tree().get_nodes_in_group("set_pieces")
# E forziamo un aggiornamento del radar per aggiornare le scritte subito
print("\n--- CONTROLLO SET PIECES ---")
print("🔍 Trovati ", set_pieces.size(), " Set Pieces nel gruppo 'set_pieces'.")
for sp in set_pieces:
if not "bioma_esclusivo" in sp or sp.bioma_esclusivo == "":
print("⚠️ Il Set Piece '", sp.name, "' non ha un bioma_esclusivo impostato. Rimarrà sempre visibile.")
continue
var bioma_locale = ""
if bioma_manuale_attivo != null:
bioma_locale = bioma_manuale_attivo.nome_bioma
else:
var grid_x = roundi(sp.global_position.x / dimensione_chunk)
var grid_z = roundi(sp.global_position.z / dimensione_chunk)
bioma_locale = _get_nome_bioma_procedurale(generatore_rumore.get_noise_2d(grid_x, grid_z))
print("👉 Analizzo: '", sp.name, "' | Vuole il bioma: [", sp.bioma_esclusivo, "] | Il bioma attuale qui è: [", bioma_locale, "]")
if bioma_locale == sp.bioma_esclusivo:
sp.show()
sp.process_mode = Node.PROCESS_MODE_INHERIT
print(" ✅ CORRISPONDENZA! Il tempio è ORA VISIBILE E SOLIDO.")
else:
sp.hide()
sp.process_mode = Node.PROCESS_MODE_DISABLED
print(" ❌ NIENTE CORRISPONDENZA! Il tempio è ORA UN FANTASMA INVISIBILE.")
print("----------------------------\n")
func _on_dropdown_biomi_item_selected(indice: int) -> void:
if indice == 0: bioma_manuale_attivo = null
else: bioma_manuale_attivo = lista_biomi[indice - 1]
_distruggi_e_rigenera_mondo()
func _distruggi_e_rigenera_mondo() -> void:
# 1. Spegne i templi vecchi e accende quelli nuovi PRIMA di pulire la memoria
_aggiorna_set_pieces()
# 2. Distrugge fisicamente tutti i modelli 3D dei biomi procedurali
for pos in scacchiera.keys():
var cella = scacchiera[pos]
if cella["tipo"] == "bioma":
if cella.has("nodo") and is_instance_valid(cella["nodo"]):
cella["nodo"].queue_free()
# 3. AMNESIA TOTALE: Svuotiamo l'intero dizionario (sia biomi che ostacoli vecchi)
scacchiera.clear()
# 4. Forziamo il treno a sparare i laser e ricreare la mappa al prossimo frame
ultima_pos_griglia_treno = Vector2i(999999, 999999)
_radar_bioma_treno()
ultima_pos_griglia_treno = Vector2i(999999, 999999)
_radar_bioma_treno() _radar_bioma_treno()
func _physics_process(_delta: float) -> void: func _physics_process(_delta: float) -> void:
@@ -94,8 +151,7 @@ func _physics_process(_delta: float) -> void:
if pos_attuale != ultima_pos_griglia_treno: if pos_attuale != ultima_pos_griglia_treno:
ultima_pos_griglia_treno = pos_attuale ultima_pos_griglia_treno = pos_attuale
_genera_attorno_al_treno(pos_attuale) _genera_attorno_al_treno(pos_attuale)
_pulisci_chunk_lontani(pos_attuale)
# Il treno ha fatto 20 metri (ha cambiato cella), quindi aggiorniamo il GPS a schermo!
_radar_bioma_treno() _radar_bioma_treno()
func _genera_attorno_al_treno(centro: Vector2i) -> void: func _genera_attorno_al_treno(centro: Vector2i) -> void:
@@ -109,21 +165,21 @@ func _genera_attorno_al_treno(centro: Vector2i) -> void:
_piazza_bioma_compatibile(pos_griglia) _piazza_bioma_compatibile(pos_griglia)
func _scegli_catalogo_per_cella(pos_griglia: Vector2i) -> Array[PackedScene]: func _scegli_catalogo_per_cella(pos_griglia: Vector2i) -> Array[PackedScene]:
if bioma_manuale_attivo != null:
return bioma_manuale_attivo.chunk_disponibili
var valore = generatore_rumore.get_noise_2d(pos_griglia.x, pos_griglia.y) var valore = generatore_rumore.get_noise_2d(pos_griglia.x, pos_griglia.y)
var nome_bioma_scelto = _get_nome_bioma(valore) var valore_normalizzato = (valore + 1.0) / 2.0
var indice = clamp(int(valore_normalizzato * lista_biomi.size()), 0, lista_biomi.size() - 1)
return lista_biomi[indice].chunk_disponibili
var catalogo_scelto: Array[PackedScene] = [] func _get_nome_bioma_procedurale(valore: float) -> String:
if bioma_manuale_attivo != null:
return bioma_manuale_attivo.nome_bioma
if nome_bioma_scelto == "Campagna": catalogo_scelto = bioma_campagna var valore_normalizzato = (valore + 1.0) / 2.0
elif nome_bioma_scelto == "Campagna-Foresta": catalogo_scelto = bioma_campagna if randf() > 0.5 else bioma_foresta var indice = clamp(int(valore_normalizzato * lista_biomi.size()), 0, lista_biomi.size() - 1)
elif nome_bioma_scelto == "Foresta": catalogo_scelto = bioma_foresta return lista_biomi[indice].nome_bioma
elif nome_bioma_scelto == "Foresta-Altro": catalogo_scelto = bioma_foresta if randf() > 0.5 else bioma_altro
else: catalogo_scelto = bioma_altro
if catalogo_scelto.is_empty():
catalogo_scelto = bioma_campagna
return catalogo_scelto
func _registra_cella_con_laser(pos_griglia: Vector2i) -> bool: func _registra_cella_con_laser(pos_griglia: Vector2i) -> bool:
if scacchiera.has(pos_griglia): return true if scacchiera.has(pos_griglia): return true
@@ -140,87 +196,136 @@ func _registra_cella_con_laser(pos_griglia: Vector2i) -> bool:
var collider = result["collider"] var collider = result["collider"]
var nodo_corrente = collider var nodo_corrente = collider
var uscite_trovate = {"nord": false, "est": false, "sud": false, "ovest": false} var uscite_trovate = {"nord": false, "est": false, "sud": false, "ovest": false}
var altezze_trovate = {"nord": 0, "est": 0, "sud": 0, "ovest": 0}
while nodo_corrente != null and nodo_corrente != get_tree().root: while nodo_corrente != null and nodo_corrente != get_tree().root:
if nodo_corrente.has_method("get_uscite_ruotate"): if nodo_corrente.has_method("get_dati_ruotati"):
var scatti_rotazione = roundi(rad_to_deg(nodo_corrente.global_rotation.y) / -90.0) var scatti_rotazione = roundi(rad_to_deg(nodo_corrente.global_rotation.y) / -90.0)
uscite_trovate = nodo_corrente.get_uscite_ruotate(scatti_rotazione) var dati = nodo_corrente.get_dati_ruotati(scatti_rotazione)
uscite_trovate = dati["connessioni"]
altezze_trovate = dati["altezze"]
break break
nodo_corrente = nodo_corrente.get_parent() nodo_corrente = nodo_corrente.get_parent()
scacchiera[pos_griglia] = {"tipo": "ostacolo", "uscite": uscite_trovate} scacchiera[pos_griglia] = {"tipo": "ostacolo", "uscite": uscite_trovate, "altezze": altezze_trovate}
return true return true
return false return false
func _piazza_bioma_compatibile(pos_griglia: Vector2i) -> void: func _piazza_bioma_compatibile(pos_griglia: Vector2i) -> void:
var req_nord = _richiede_connessione(pos_griglia + Vector2i(0, -1), "sud") var req_conn_nord = _richiede_connessione(pos_griglia + Vector2i(0, -1), "sud")
var req_est = _richiede_connessione(pos_griglia + Vector2i(1, 0), "ovest") var req_conn_est = _richiede_connessione(pos_griglia + Vector2i(1, 0), "ovest")
var req_sud = _richiede_connessione(pos_griglia + Vector2i(0, 1), "nord") var req_conn_sud = _richiede_connessione(pos_griglia + Vector2i(0, 1), "nord")
var req_ovest = _richiede_connessione(pos_griglia + Vector2i(-1, 0), "est") var req_conn_ovest = _richiede_connessione(pos_griglia + Vector2i(-1, 0), "est")
var req_alt_nord = _richiede_altezza(pos_griglia + Vector2i(0, -1), "sud")
var req_alt_est = _richiede_altezza(pos_griglia + Vector2i(1, 0), "ovest")
var req_alt_sud = _richiede_altezza(pos_griglia + Vector2i(0, 1), "nord")
var req_alt_ovest = _richiede_altezza(pos_griglia + Vector2i(-1, 0), "est")
var rumore_alt = generatore_altitudine.get_noise_2d(pos_griglia.x, pos_griglia.y)
var altitudine_target = clamp(roundi((rumore_alt + 1.0) / 2.0), 0, 1)
var catalogo_zona = _scegli_catalogo_per_cella(pos_griglia) var catalogo_zona = _scegli_catalogo_per_cella(pos_griglia)
var candidati = [] var candidati_validi = []
for scena in catalogo_zona: for scena in catalogo_zona:
var test_chunk = scena.instantiate() var test_chunk = scena.instantiate()
if test_chunk.has_method("get_uscite_ruotate"): if test_chunk.has_method("get_dati_ruotati"):
for rot in range(4): for rot in range(4):
var u = test_chunk.get_uscite_ruotate(rot) var dati = test_chunk.get_dati_ruotati(rot)
var u_conn = dati["connessioni"]
var u_alt = dati["altezze"]
var match_n = (req_nord == -1) or ((req_nord == 1) == u["nord"]) var match_conn_n = (req_conn_nord == -1) or ((req_conn_nord == 1) == u_conn["nord"])
var match_e = (req_est == -1) or ((req_est == 1) == u["est"]) var match_conn_e = (req_conn_est == -1) or ((req_conn_est == 1) == u_conn["est"])
var match_s = (req_sud == -1) or ((req_sud == 1) == u["sud"]) var match_conn_s = (req_conn_sud == -1) or ((req_conn_sud == 1) == u_conn["sud"])
var match_o = (req_ovest == -1) or ((req_ovest == 1) == u["ovest"]) var match_conn_o = (req_conn_ovest == -1) or ((req_conn_ovest == 1) == u_conn["ovest"])
if match_n and match_e and match_s and match_o: var match_alt_n = (req_alt_nord == -1) or (req_alt_nord == u_alt["nord"])
candidati.append({"scena": scena, "rotazione": rot, "uscite": u}) var match_alt_e = (req_alt_est == -1) or (req_alt_est == u_alt["est"])
var match_alt_s = (req_alt_sud == -1) or (req_alt_sud == u_alt["sud"])
var match_alt_o = (req_alt_ovest == -1) or (req_alt_ovest == u_alt["ovest"])
var diff_n = abs(u_alt["nord"] - altitudine_target) if req_alt_nord == -1 else 0
var diff_e = abs(u_alt["est"] - altitudine_target) if req_alt_est == -1 else 0
var diff_s = abs(u_alt["sud"] - altitudine_target) if req_alt_sud == -1 else 0
var diff_o = abs(u_alt["ovest"] - altitudine_target) if req_alt_ovest == -1 else 0
var salti_eccessivi = diff_n > 1 or diff_e > 1 or diff_s > 1 or diff_o > 1
if match_conn_n and match_conn_e and match_conn_s and match_conn_o and match_alt_n and match_alt_e and match_alt_s and match_alt_o and not salti_eccessivi:
var score = 0
if req_alt_nord == -1 and u_alt["nord"] == altitudine_target: score += 1
if req_alt_est == -1 and u_alt["est"] == altitudine_target: score += 1
if req_alt_sud == -1 and u_alt["sud"] == altitudine_target: score += 1
if req_alt_ovest == -1 and u_alt["ovest"] == altitudine_target: score += 1
candidati_validi.append({"scena": scena, "rotazione": rot, "dati": dati, "score": score})
test_chunk.queue_free() test_chunk.queue_free()
if candidati.size() > 0: if candidati_validi.size() > 0:
var scelto = candidati.pick_random() var max_score = -1
for c in candidati_validi:
if c.score > max_score: max_score = c.score
var candidati_migliori = []
for c in candidati_validi:
if c.score == max_score: candidati_migliori.append(c)
var scelto = candidati_migliori.pick_random()
var nuovo_chunk = scelto.scena.instantiate() var nuovo_chunk = scelto.scena.instantiate()
add_child(nuovo_chunk) add_child(nuovo_chunk)
nuovo_chunk.position = Vector3(pos_griglia.x * dimensione_chunk, 0, pos_griglia.y * dimensione_chunk) nuovo_chunk.position = Vector3(pos_griglia.x * dimensione_chunk, 0, pos_griglia.y * dimensione_chunk)
nuovo_chunk.rotation.y = scelto.rotazione * (-PI / 2.0) nuovo_chunk.rotation.y = scelto.rotazione * (-PI / 2.0)
scacchiera[pos_griglia] = {"tipo": "bioma", "uscite": scelto.uscite}
scacchiera[pos_griglia] = {"tipo": "bioma", "uscite": scelto.dati["connessioni"], "altezze": scelto.dati["altezze"], "nodo": nuovo_chunk}
else: else:
push_warning("⚠️ MANCA UN PEZZO IN CATALOGO PER LA POSIZIONE " + str(pos_griglia) + "!")
var fmt_alt = func(req): return str(req) if req != -1 else "Libero"
var fmt_conn = func(req): return "" if req == 1 else ("No" if req == 0 else "Libero")
print("--- IDENTIKIT DEL PEZZO CHE TI MANCA ---")
print("Altezze richieste -> Nord: ", fmt_alt.call(req_alt_nord), " | Est: ", fmt_alt.call(req_alt_est), " | Sud: ", fmt_alt.call(req_alt_sud), " | Ovest: ", fmt_alt.call(req_alt_ovest))
print("----------------------------------------\n")
var backup = catalogo_zona[0].instantiate() var backup = catalogo_zona[0].instantiate()
add_child(backup) add_child(backup)
backup.position = Vector3(pos_griglia.x * dimensione_chunk, 0, pos_griglia.y * dimensione_chunk) backup.position = Vector3(pos_griglia.x * dimensione_chunk, 0, pos_griglia.y * dimensione_chunk)
scacchiera[pos_griglia] = {"tipo": "bioma", "uscite": {"nord":false, "est":false, "sud":false, "ovest":false}}
var altezze_sicure = {
"nord": req_alt_nord if req_alt_nord != -1 else altitudine_target,
"est": req_alt_est if req_alt_est != -1 else altitudine_target,
"sud": req_alt_sud if req_alt_sud != -1 else altitudine_target,
"ovest": req_alt_ovest if req_alt_ovest != -1 else altitudine_target
}
scacchiera[pos_griglia] = {"tipo": "bioma", "uscite": {"nord":false, "est":false, "sud":false, "ovest":false}, "altezze": altezze_sicure, "nodo": backup}
func _richiede_connessione(pos_vicino: Vector2i, lato_richiesto: String) -> int: func _richiede_connessione(pos_vicino: Vector2i, lato_richiesto: String) -> int:
if not scacchiera.has(pos_vicino): _registra_cella_con_laser(pos_vicino) if not scacchiera.has(pos_vicino):
if scacchiera.has(pos_vicino): _registra_cella_con_laser(pos_vicino)
if scacchiera.has(pos_vicino) and scacchiera[pos_vicino].has("uscite"):
return 1 if scacchiera[pos_vicino]["uscite"][lato_richiesto] else 0 return 1 if scacchiera[pos_vicino]["uscite"][lato_richiesto] else 0
return -1 return -1
func _get_nome_bioma(valore: float) -> String: func _richiede_altezza(pos_vicino: Vector2i, lato_richiesto: String) -> int:
if valore < -0.4: return "Campagna" if scacchiera.has(pos_vicino) and scacchiera[pos_vicino].has("altezze"):
elif valore < -0.15: return "Campagna-Foresta" return scacchiera[pos_vicino]["altezze"][lato_richiesto]
return -1
if not usa_terzo_bioma: return "Foresta"
if valore < 0.15: return "Foresta"
elif valore < 0.4: return "Foresta-Altro"
else: return "Altro (Deserto/Neve)"
# --- AGGIORNAMENTO GPS A SCHERMO ---
# --- AGGIORNAMENTO GPS A SCHERMO ---
func _radar_bioma_treno() -> void: func _radar_bioma_treno() -> void:
# SICUREZZA: Controlliamo che il treno esista davvero prima di leggerne la posizione! if path_treno == null or path_treno.curve == null or path_treno.treno_istanziato == null: return
if path_treno == null or path_treno.curve == null or path_treno.treno_istanziato == null:
if bioma_manuale_attivo != null:
if lbl_bioma: lbl_bioma.text = bioma_manuale_attivo.nome_bioma
if lbl_distanza: lbl_distanza.text = "Override manuale (Infinita)"
return return
var pos_treno = path_treno.treno_istanziato.global_position var pos_treno = path_treno.treno_istanziato.global_position
var grid_x = roundi(pos_treno.x / dimensione_chunk) var grid_x = roundi(pos_treno.x / dimensione_chunk)
# ... il resto del codice rimane identico ...
var grid_z = roundi(pos_treno.z / dimensione_chunk) var grid_z = roundi(pos_treno.z / dimensione_chunk)
var valore_attuale = generatore_rumore.get_noise_2d(grid_x, grid_z) var bioma_attuale = _get_nome_bioma_procedurale(generatore_rumore.get_noise_2d(grid_x, grid_z))
var bioma_attuale = _get_nome_bioma(valore_attuale)
var progresso_attuale = path_treno.progresso_treno var progresso_attuale = path_treno.progresso_treno
var lunghezza_totale = path_treno.curve.get_baked_length() var lunghezza_totale = path_treno.curve.get_baked_length()
@@ -234,18 +339,35 @@ func _radar_bioma_treno() -> void:
var f_x = roundi(pos_futura_globale.x / dimensione_chunk) var f_x = roundi(pos_futura_globale.x / dimensione_chunk)
var f_z = roundi(pos_futura_globale.z / dimensione_chunk) var f_z = roundi(pos_futura_globale.z / dimensione_chunk)
var valore_futuro = generatore_rumore.get_noise_2d(f_x, f_z) var bioma_futuro = _get_nome_bioma_procedurale(generatore_rumore.get_noise_2d(f_x, f_z))
var bioma_futuro = _get_nome_bioma(valore_futuro)
if bioma_futuro != bioma_attuale: if bioma_futuro != bioma_attuale:
distanza_cambio = step * dimensione_chunk distanza_cambio = step * dimensione_chunk
prossimo_bioma = bioma_futuro prossimo_bioma = bioma_futuro
break break
# MODIFICA: Invece di usare print, aggiorniamo l'interfaccia a schermo!
if lbl_bioma and lbl_distanza: if lbl_bioma and lbl_distanza:
lbl_bioma.text = bioma_attuale lbl_bioma.text = bioma_attuale
if prossimo_bioma != "": if prossimo_bioma != "":
lbl_distanza.text = str(distanza_cambio) + "m ➔ " + prossimo_bioma lbl_distanza.text = str(distanza_cambio) + "m ➔ " + prossimo_bioma
else: else:
lbl_distanza.text = "Nessun cambio nei prossimi 600m" lbl_distanza.text = "Nessun cambio nei prossimi 600m"
func _pulisci_chunk_lontani(centro_attuale: Vector2i) -> void:
var celle_da_rimuovere = []
var margine_sicurezza = 2
for pos_griglia in scacchiera.keys():
var cella = scacchiera[pos_griglia]
if cella["tipo"] == "ostacolo": continue
var dist_x = abs(pos_griglia.x - centro_attuale.x)
var dist_z = abs(pos_griglia.y - centro_attuale.y)
if dist_x > raggio_visivo + margine_sicurezza or dist_z > raggio_visivo + margine_sicurezza:
if cella.has("nodo") and is_instance_valid(cella["nodo"]):
cella["nodo"].queue_free()
celle_da_rimuovere.append(pos_griglia)
for pos in celle_da_rimuovere:
scacchiera.erase(pos)

View File

@@ -3,25 +3,49 @@ class_name InfoChunk
@export_enum("Bioma", "Binario_Dritto", "Binario_Curva") var tipo_chunk: int = 0 @export_enum("Bioma", "Binario_Dritto", "Binario_Curva") var tipo_chunk: int = 0
@export_group("Regole Set Piece (Pezzi Unici)")
@export var bioma_esclusivo: String = "" # Es: scrivi "Foresta"
@export_group("Uscite Base (Senza Rotazione)") @export_group("Uscite Base (Senza Rotazione)")
# Spunta queste caselle se il chunk ha un sentiero/binario che tocca quel bordo
@export var nord: bool = false @export var nord: bool = false
@export var est: bool = false @export var est: bool = false
@export var sud: bool = false @export var sud: bool = false
@export var ovest: bool = false @export var ovest: bool = false
# Calcola dove finiscono le uscite se ruotiamo il blocco @export_group("Altitudini Bordi (Livelli 0, 1, 2)")
func get_uscite_ruotate(scatti_90_gradi: int) -> Dictionary: @export var altezza_nord: int = 0
@export var altezza_est: int = 0
@export var altezza_sud: int = 0
@export var altezza_ovest: int = 0
# --- NUOVA AGGIUNTA AUTOMATICA ---
func _ready() -> void:
# Se hai scritto un bioma nell'Inspector, il pezzo capisce di essere
# un pezzo speciale e si aggiunge al gruppo dei fantasmi da solo!
if bioma_esclusivo != "":
add_to_group("set_pieces")
# ... qui sotto continua la tua normale funzione get_dati_ruotati() ...
func get_dati_ruotati(scatti_90_gradi: int) -> Dictionary:
var uscite_originali = [nord, est, sud, ovest] var uscite_originali = [nord, est, sud, ovest]
var altezze_originali = [altezza_nord, altezza_est, altezza_sud, altezza_ovest]
var uscite_calcolate = [] var uscite_calcolate = []
var altezze_calcolate = []
for i in range(4): for i in range(4):
# Sposta le uscite in senso orario var indice = (i - scatti_90_gradi + 4) % 4
uscite_calcolate.append(uscite_originali[(i - scatti_90_gradi + 4) % 4]) uscite_calcolate.append(uscite_originali[indice])
altezze_calcolate.append(altezze_originali[indice])
return { return {
"nord": uscite_calcolate[0], "connessioni": {
"est": uscite_calcolate[1], "nord": uscite_calcolate[0], "est": uscite_calcolate[1],
"sud": uscite_calcolate[2], "sud": uscite_calcolate[2], "ovest": uscite_calcolate[3]
"ovest": uscite_calcolate[3] },
"altezze": {
"nord": altezze_calcolate[0], "est": altezze_calcolate[1],
"sud": altezze_calcolate[2], "ovest": altezze_calcolate[3]
}
} }

17
Shaders/Blur.gdshader Normal file
View File

@@ -0,0 +1,17 @@
shader_type canvas_item;
// Cattura tutto quello che c'è sotto questo nodo
uniform sampler2D screen_texture : hint_screen_texture, filter_linear_mipmap;
uniform float blur_amount : hint_range(0.0, 5.0) = 2.5;
uniform float focus_size : hint_range(0.0, 1.0) = 0.4;
uniform float transition_softness : hint_range(0.01, 1.0) = 0.3;
void fragment() {
float dist_from_center = abs(SCREEN_UV.y - 0.5);
float mask = smoothstep(focus_size / 2.0, (focus_size / 2.0) + transition_softness, dist_from_center);
// Applica il blur
vec4 blurred_screen = textureLod(screen_texture, SCREEN_UV, blur_amount * mask);
COLOR = blurred_screen;
}

View File

@@ -0,0 +1 @@
uid://bl1dwh2k06yy5

View File

@@ -1,21 +1,35 @@
shader_type spatial; shader_type spatial;
// Rimosso 'unshaded' per ricevere le ombre.
// Aggiunto 'ambient_light_disabled' per proteggere la tua palette dai riflessi del cielo.
render_mode specular_disabled, cull_disabled, ambient_light_disabled; 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_scale;
global uniform float wind_speed; global uniform float wind_speed;
global uniform float wind_strength; global uniform float wind_strength;
global uniform vec3 wind_direction; global uniform vec3 wind_direction;
global uniform sampler2D wind_noise : filter_linear_mipmap; global uniform sampler2D wind_noise : filter_linear_mipmap;
global uniform float global_snow_amount;
// --- PARAMETRI ESTETICI --- // --- PARAMETRI ESTETICI ---
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 vec4 base_color : source_color = vec4(0.2, 0.6, 0.3, 1.0);
uniform sampler2D alpha_texture : source_color, filter_nearest; uniform sampler2D alpha_texture : source_color, filter_nearest;
uniform float leaves_scale = 1.0; uniform float leaves_scale = 1.0;
uniform float rotation_degrees = 0.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;
// --- PARAMETRI CHIAZZE ERBA (NOISE PATCHES) ---
// Inserisci qui una texture Noise (es. FastNoiseLite in Godot)
uniform sampler2D grass_noise : hint_default_white, filter_linear_mipmap;
uniform float noise_scale = 0.05; // Più è basso, più le chiazze sono grandi
uniform vec4 patch_color : source_color = vec4(0.1, 0.35, 0.2, 1.0); // Colore scuro della chiazza
uniform float patch_threshold : hint_range(0.0, 1.0) = 0.5; // Regola quanto sono estese le chiazze
uniform float patch_smoothness : hint_range(0.01, 1.0) = 0.2; // Morbidezza sfumatura ai bordi
uniform float patch_intensity : hint_range(0.0, 1.0) = 0.85; // Quanto è forte il colore della chiazza
uniform vec4 snow_color : source_color = vec4(0.85, 0.9, 0.95, 1.0);
// --- CONTROLLO GRADIENTE E RANDOM --- // --- CONTROLLO GRADIENTE E RANDOM ---
uniform float height_min = 0.0; uniform float height_min = 0.0;
@@ -25,12 +39,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 light_steps : hint_range(1.0, 10.0) = 4.0;
uniform float random_mix : hint_range(0.0, 1.0) = 0.3; uniform float random_mix : hint_range(0.0, 1.0) = 0.3;
// NUOVO: Regola quanto è scura l'ombra proiettata (es. dal tronco) sull'erba
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;
varying vec3 v_final_color; varying vec3 v_final_color;
varying float v_shade_factor;
// Funzione hash per generare casualità basata sulla posizione
float hash(vec3 p) { float hash(vec3 p) {
p = fract(p * 0.1031); p = fract(p * 0.1031);
p += dot(p, p.yzx + 33.33); p += dot(p, p.yzx + 33.33);
@@ -38,29 +51,43 @@ float hash(vec3 p) {
} }
void vertex() { void vertex() {
// 1. POSIZIONE DELL'ISTANZA
vec3 instance_pos = MODEL_MATRIX[3].xyz; vec3 instance_pos = MODEL_MATRIX[3].xyz;
// --- 2. LOGICA VENTO --- // --- LOGICA VENTO ---
float total_angle = radians(rotation_degrees);
if (wind_enabled) {
float time = TIME * wind_speed; float time = TIME * wind_speed;
vec2 noise_uv = (instance_pos.xz * wind_scale) + (time * wind_direction.xz * 0.5); vec2 noise_uv = (instance_pos.xz * wind_scale) + (time * wind_direction.xz * 0.5);
float noise_val = textureLod(wind_noise, noise_uv, 2.0).r; float noise_val = textureLod(wind_noise, noise_uv, 2.0).r;
float sway = sin(time + (noise_val * 10.0)); float sway = sin(time + (noise_val * 10.0));
float total_angle = radians(rotation_degrees) + (sway * wind_strength); total_angle += (sway * wind_strength);
}
// --- 3. CALCOLO COLORE (LOGICA MIXATA) --- // --- CALCOLO COLORE BASE ---
float h_factor = clamp((instance_pos.y - height_min) / (height_max - height_min), 0.0, 1.0); float h_factor = clamp((instance_pos.y - height_min) / (height_max - height_min), 0.0, 1.0);
float leaf_rand = hash(instance_pos); float leaf_rand = hash(instance_pos);
float combined_factor = mix(h_factor, leaf_rand, random_mix); float combined_factor = mix(h_factor, leaf_rand, random_mix);
combined_factor = ceil(combined_factor * light_steps) / light_steps; combined_factor = ceil(combined_factor * light_steps) / light_steps;
v_shade_factor = combined_factor;
vec3 dark_color = base_color.rgb * (1.0 - shadow_intensity); vec3 dark_color = base_color.rgb * (1.0 - shadow_intensity);
vec3 light_color = base_color.rgb + (vec3(1.0) - base_color.rgb) * highlight_intensity; vec3 light_color = base_color.rgb + (vec3(1.0) - base_color.rgb) * highlight_intensity;
vec3 base_grass_color = mix(dark_color, light_color, combined_factor);
v_final_color = mix(dark_color, light_color, combined_factor); // ---> LOGICA CHIAZZE ERBA (NOISE) <---
// Campioniamo il noise usando la posizione XZ del singolo ciuffo d'erba nel mondo.
// Usiamo textureLod con 0.0 perché siamo nel vertex shader.
float n_val = textureLod(grass_noise, instance_pos.xz * noise_scale, 0.0).r;
// --- 4. LOGICA BILLBOARD --- // Creiamo la maschera per la chiazza: liscia ai bordi, solida al centro.
float patch_mask = smoothstep(patch_threshold - patch_smoothness, patch_threshold + patch_smoothness, n_val);
// Mescoliamo il colore base dell'erba con il colore scuro della chiazza
v_final_color = mix(base_grass_color, patch_color.rgb, patch_mask * patch_intensity);
// --- LOGICA TRASFORMAZIONE ---
if (billboard_enabled) {
vec3 view_pos_origin = (VIEW_MATRIX * vec4(instance_pos, 1.0)).xyz; vec3 view_pos_origin = (VIEW_MATRIX * vec4(instance_pos, 1.0)).xyz;
vec2 offset = (UV - 0.5) * leaves_scale; vec2 offset = (UV - 0.5) * leaves_scale;
@@ -73,27 +100,43 @@ void vertex() {
MODELVIEW_MATRIX = mat4(1.0); MODELVIEW_MATRIX = mat4(1.0);
MODELVIEW_MATRIX[3].xyz = final_pos; MODELVIEW_MATRIX[3].xyz = final_pos;
VERTEX = vec3(0.0); VERTEX = vec3(0.0);
} else {
float c = cos(total_angle);
float s = sin(total_angle);
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;
}
} }
void fragment() { void fragment() {
vec4 tex = texture(alpha_texture, UV); vec2 shifted_uv = UV + texture_offset;
vec4 tex = texture(alpha_texture, shifted_uv);
ALBEDO = v_final_color; // Trucco utile per non renderizzare i bordi trasparenti dei piani (opzionale)
ALPHA = tex.r; if (tex.r * opacity < 0.5) {
ALPHA_SCISSOR_THRESHOLD = 0.5; discard;
}
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);
vec3 dark_snow = snow_color.rgb * (1.0 - shadow_intensity);
vec3 shaded_snow = mix(dark_snow, snow_color.rgb, v_shade_factor);
vec3 final_albedo = mix(v_final_color, shaded_snow, snow_mask);
ALBEDO = final_albedo;
// ALPHA = tex.r * opacity; -> Disabilitato se usi 'discard' sopra.
// ALPHA_SCISSOR_THRESHOLD = 0.5; -> Idem
// --- IL TRUCCO MAGICO PER L'EDGE DETECTOR ---
// Impostiamo la roughness esattamente al 2%.
// Il Compute Shader leggerà questo valore e non disegnerà i bordi neri qui sopra!
ROUGHNESS = 0.02; ROUGHNESS = 0.02;
} }
// NUOVO: Calcolo luce custom che simula l'effetto "unshaded" (e ora fixa i quadrati!)
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);
// Maschera morbida per nascondere i quadrati
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION); float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask; DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask;
} }

29
Shaders/Nebbia2D.gdshader Normal file
View File

@@ -0,0 +1,29 @@
shader_type canvas_item;
// Colore della tua nebbia (scegli un colore che stia bene col tuo Skybox)
uniform vec4 fog_color : source_color = vec4(0.85, 0.9, 0.95, 1.0);
// Quanto è grande lo spazio pulito al centro per il treno
uniform float clear_center_radius : hint_range(0.0, 1.0) = 0.4;
// Quanto è morbida la sfumatura della nebbia verso i bordi
uniform float edge_softness : hint_range(0.01, 1.0) = 0.5;
// Opacità massima ai bordi estremi dello schermo
uniform float max_opacity : hint_range(0.0, 1.0) = 0.8;
void fragment() {
// Calcola la distanza del pixel dal centro dello schermo (0.5, 0.5)
float dist_from_center = distance(SCREEN_UV, vec2(0.5));
// Crea una maschera morbida circolare
// Al centro (distanza < clear_center) sarà 0.0 (trasparente)
// Verso i bordi salirà dolcemente fino a 1.0 (opaco)
float fog_amount = smoothstep(clear_center_radius, clear_center_radius + edge_softness, dist_from_center);
// Moltiplica per l'opacità massima desiderata
fog_amount *= max_opacity;
// Applica il colore della nebbia solo dove serve
COLOR = vec4(fog_color.rgb, fog_color.a * fog_amount);
}

View File

@@ -0,0 +1 @@
uid://bttmyh64kihyr

View File

@@ -0,0 +1,85 @@
shader_type canvas_item;
uniform sampler2D screen_texture : hint_screen_texture, filter_linear_mipmap;
// --- 1. COLORE E VISIBILITÀ ---
// Ho alzato un po' l'Alpha base per renderli più visibili fin da subito
uniform vec4 dust_color : source_color = vec4(1.0, 0.9, 0.7, 0.6);
// --- 2. VENTO E MOVIMENTO ---
// X negativo = verso sinistra. Y positivo = verso il basso.
uniform vec2 wind_velocity = vec2(-0.2, 0.05);
uniform float wind_oscillation : hint_range(0.0, 1.0) = 0.3;
uniform float dust_speed : hint_range(0.01, 1.0) = 0.15;
// --- 3. DIMENSIONI E DENSITÀ ---
uniform float size_min : hint_range(0.001, 0.1) = 0.02;
uniform float size_max : hint_range(0.01, 0.5) = 0.2;
uniform float dust_density : hint_range(0.01, 10.0) = 1.0;
// --- 4. IL FIX DEL CENTRO (Morbidezza) ---
// 0.0 = Sfumatura totale dal centro esatto fino al bordo.
// 0.5 = Metà pallino è solido, l'altra metà sfuma.
// 0.9 = Pallino dai bordi durissimi.
uniform float solid_core : hint_range(0.0, 0.99) = 0.1;
vec3 hash33(vec3 p3) {
p3 = fract(p3 * vec3(0.1031, 0.1030, 0.0973));
p3 += dot(p3, p3.yzx + 33.33);
return fract((p3.xxy + p3.yzz) * p3.zyx);
}
void fragment() {
vec4 scene_color = texture(screen_texture, SCREEN_UV);
float base_time = TIME * dust_speed;
// Vento con oscillazione naturale
vec2 osc = vec2(sin(TIME * 0.5), cos(TIME * 0.3)) * wind_oscillation;
vec2 final_wind = (wind_velocity + osc) * dust_speed;
float final_particle_alpha = 0.0;
// Configurazione dei 3 strati (Vicino, Medio, Lontano)
vec3 layer_scales = vec3(20.0, 50.0, 100.0) / dust_density;
vec3 layer_thresholds = vec3(0.96, 0.98, 0.99);
vec3 layer_speeds = vec3(1.0, 0.6, 0.3);
for (int i = 0; i < 3; i++) {
float scale = layer_scales[i];
float threshold = layer_thresholds[i];
float speed_mult = layer_speeds[i];
// Spostiamo la griglia con il vento
vec2 st = (SCREEN_UV * scale) - (final_wind * speed_mult * base_time * 50.0);
vec2 ipos = floor(st);
vec2 fpos = fract(st);
vec3 rand = hash33(vec3(ipos, float(i)));
if (rand.z > threshold) {
// Effetto brillio
float blink = sin(TIME * (2.0 + rand.x)) * 0.5 + 0.5;
float d = length(fpos - vec2(0.5));
float size = size_min + (size_max - size_min) * rand.x;
float scaled_size = size * (0.5 + 0.5 * blink);
// --- LA SOLUZIONE "ANTI-CIAMBELLA" ---
// Calcoliamo la grandezza del "nucleo solido" in proporzione alla grandezza totale.
float core = scaled_size * solid_core;
// Se la distanza (d) è minore del 'core', l'opacità è 1.0.
// Se va dal 'core' fino al bordo (scaled_size), sfuma dolcemente verso lo 0.0.
float particle_softness = 1.0 - smoothstep(core, scaled_size, d);
// Uniamo tutto: morbidezza, brillio, e una correzione per l'intensità in base allo strato
float intensity = (rand.z - threshold) / (1.0 - threshold);
final_particle_alpha += particle_softness * blink * intensity;
}
}
final_particle_alpha = clamp(final_particle_alpha, 0.0, 1.0);
vec4 dust_colored_particle = dust_color * final_particle_alpha;
COLOR = scene_color + dust_colored_particle;
}

View File

@@ -0,0 +1 @@
uid://svdmjppqell5

32
Shaders/snow.gdshader Normal file
View File

@@ -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;
}

View File

@@ -0,0 +1 @@
uid://do0tct77dfhef

View File

@@ -1,25 +1,28 @@
shader_type spatial; 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; 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_scale;
global uniform float wind_speed; global uniform float wind_speed;
global uniform float wind_strength; global uniform float wind_strength;
global uniform vec3 wind_direction; global uniform vec3 wind_direction;
global uniform sampler2D wind_noise : filter_linear_mipmap; global uniform sampler2D wind_noise : filter_linear_mipmap;
global uniform float global_snow_amount;
// --- PARAMETRI ESTETICI --- // --- PARAMETRI ESTETICI ---
uniform bool billboard_enabled = true; // <--- PULSANTE ON/OFF BILLBOARD uniform bool billboard_enabled = true;
uniform bool wind_enabled = true; // <--- PULSANTE ON/OFF VENTO uniform bool wind_enabled = true;
uniform vec4 base_color : source_color = vec4(0.2, 0.6, 0.3, 1.0); uniform vec4 base_color : source_color = vec4(0.2, 0.6, 0.3, 1.0);
uniform sampler2D alpha_texture : source_color, filter_nearest; uniform sampler2D alpha_texture : source_color, filter_nearest;
uniform float leaves_scale = 1.0; uniform float leaves_scale = 1.0;
uniform float rotation_degrees = 0.0; uniform float rotation_degrees = 0.0;
uniform vec2 texture_offset = vec2(0.0, 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 --- // --- CONTROLLO GRADIENTE E RANDOM ---
uniform float height_min = 0.0; 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 light_steps : hint_range(1.0, 10.0) = 4.0;
uniform float random_mix : hint_range(0.0, 1.0) = 0.3; 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; uniform float cast_shadow_strength : hint_range(0.0, 1.0) = 0.6;
varying vec3 v_final_color; varying vec3 v_final_color;
// ---> AGGIUNTO: Passiamo il fattore di ombra al fragment <---
varying float v_shade_factor;
float hash(vec3 p) { float hash(vec3 p) {
p = fract(p * 0.1031); p = fract(p * 0.1031);
@@ -59,13 +63,15 @@ void vertex() {
float combined_factor = mix(h_factor, leaf_rand, random_mix); float combined_factor = mix(h_factor, leaf_rand, random_mix);
combined_factor = ceil(combined_factor * light_steps) / light_steps; 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 dark_color = base_color.rgb * (1.0 - shadow_intensity);
vec3 light_color = base_color.rgb + (vec3(1.0) - base_color.rgb) * highlight_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); v_final_color = mix(dark_color, light_color, combined_factor);
// --- LOGICA TRASFORMAZIONE (BILLBOARD vs STANDARD) --- // --- LOGICA TRASFORMAZIONE ---
if (billboard_enabled) { if (billboard_enabled) {
// Logica Billboard: guarda sempre la camera
vec3 view_pos_origin = (VIEW_MATRIX * vec4(instance_pos, 1.0)).xyz; vec3 view_pos_origin = (VIEW_MATRIX * vec4(instance_pos, 1.0)).xyz;
vec2 offset = (UV - 0.5) * leaves_scale; vec2 offset = (UV - 0.5) * leaves_scale;
@@ -79,16 +85,12 @@ void vertex() {
MODELVIEW_MATRIX[3].xyz = final_pos; MODELVIEW_MATRIX[3].xyz = final_pos;
VERTEX = vec3(0.0); VERTEX = vec3(0.0);
} else { } 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 c = cos(total_angle);
float s = sin(total_angle); float s = sin(total_angle);
// Modifichiamo il vertice locale prima della trasformazione world
vec2 local_v = (VERTEX.xy) * leaves_scale; vec2 local_v = (VERTEX.xy) * leaves_scale;
VERTEX.x = local_v.x * c - local_v.y * s; VERTEX.x = local_v.x * c - local_v.y * s;
VERTEX.y = local_v.x * s + local_v.y * c; 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; vec2 shifted_uv = UV + texture_offset;
vec4 tex = texture(alpha_texture, shifted_uv); vec4 tex = texture(alpha_texture, shifted_uv);
ALBEDO = v_final_color; float top_mask = 1.0 - shifted_uv.y;
// Moltiplichiamo l'alpha della texture per il nuovo parametro opacity 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 = tex.r * opacity;
ALPHA_SCISSOR_THRESHOLD = 0.5; ALPHA_SCISSOR_THRESHOLD = 0.5;
ROUGHNESS = 0.02; ROUGHNESS = 0.02;
} }
// --- NUOVA LOGICA LUCE (Ombre Proiettate e Fix Quadrati) ---
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);
// Maschera morbida per nascondere i quadrati
float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION); float cutoff_mask = smoothstep(0.0, 0.05, ATTENUATION);
DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask; DIFFUSE_LIGHT += (shadow_factor * LIGHT_COLOR) * cutoff_mask;
} }

View File

@@ -9,40 +9,60 @@ 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;
// ---> NUOVI PARAMETRI TOON SPECULAR <---
uniform float specular_size : hint_range(10.0, 200.0) = 60.0; // Più è alto, più il punto luce è piccolo
uniform float specular_softness : hint_range(0.0, 0.1) = 0.01; // Morbidezza del bordo del punto luce
uniform float specular_intensity_multiplier : hint_range(0.0, 2.0) = 0.5; // Forza del riflesso
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,8 +80,25 @@ 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;
// ---> AGGIUNTA TOON SPECULAR (Metodo 1) <---
// Calcoliamo la direzione a metà strada tra la vista e la luce
vec3 half_direction = normalize(VIEW + LIGHT);
float n_dot_h = max(0.0, dot(NORMAL, half_direction));
// Applichiamo la potenza (shininess) per definire la dimensione del punto luce
float spec_power = pow(n_dot_h, specular_size);
// Creiamo un gradino netto (Toon) invece della sfumatura classica PBR
float toon_specular = smoothstep(0.5 - specular_softness, 0.5 + specular_softness, spec_power);
// Moltiplichiamo il riflesso per il colore della luce (Sole o Luna)
vec3 specular_highlight = LIGHT_COLOR * toon_specular * specular_intensity_multiplier;
// Sommiamo il punto luce finale alla diffusione, mascherandolo con "cutoff_mask"
// per evitare che il riflesso brilli anche nelle zone in ombra profonda.
DIFFUSE_LIGHT += (specular_highlight * cutoff_mask);
} }

View File

@@ -17,14 +17,23 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true
config/name="Train Goes Ciuf Ciuf_ArtTest" config/name="Train Goes Ciuf Ciuf_ArtTest"
run/main_scene="uid://u1nuoyclw43e" run/main_scene="uid://u1nuoyclw43e"
config/features=PackedStringArray("4.6", "Forward Plus") config/features=PackedStringArray("4.6", "Forward Plus")
run/max_fps=60
run/low_processor_mode=true
config/icon="uid://crrxn38y2sbxq" config/icon="uid://crrxn38y2sbxq"
[display]
window/size/viewport_width=1920
window/size/viewport_height=1080
window/size/mode=3
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[rendering] [rendering]
textures/canvas_textures/default_texture_filter=3 textures/canvas_textures/default_texture_filter=2
lights_and_shadows/directional_shadow/soft_shadow_filter_quality=0 lights_and_shadows/directional_shadow/soft_shadow_filter_quality=1
lights_and_shadows/directional_shadow/16_bits=false anti_aliasing/quality/use_taa=true
lights_and_shadows/positional_shadow/soft_shadow_filter_quality=0
[shader_globals] [shader_globals]
@@ -48,3 +57,19 @@ wind_strength={
"type": "float", "type": "float",
"value": 0.4 "value": 0.4
} }
global_snow_amount={
"type": "float",
"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
}