From 9827b98b3eb37011e94b13fe8e4b4f902cfe5749 Mon Sep 17 00:00:00 2001 From: Matteo Sonaglioni Date: Tue, 5 May 2026 18:45:16 +0200 Subject: [PATCH] river water shader --- core/daynight/water_river.gdshader | 212 ++++++++++++++++++ core/daynight/water_river.gdshader.uid | 1 + tgcc/chunk/material/water_river.tres | 44 ++++ .../scene/chunk_railway_straight_3.tscn | 4 +- .../river/scene/chunk_river_cross_1.tscn | 20 +- .../river/scene/chunk_river_curve_1.tscn | 13 +- tgcc/chunk/river/scene/chunk_river_end_1.tscn | 17 +- .../chunk/river/scene/chunk_river_mix1_1.tscn | 35 +-- .../chunk/river/scene/chunk_river_mix2_1.tscn | 32 +-- .../chunk/river/scene/chunk_river_mix3_1.tscn | 23 +- .../river/scene/chunk_river_straight_1.tscn | 15 +- 11 files changed, 339 insertions(+), 77 deletions(-) create mode 100644 core/daynight/water_river.gdshader create mode 100644 core/daynight/water_river.gdshader.uid create mode 100644 tgcc/chunk/material/water_river.tres diff --git a/core/daynight/water_river.gdshader b/core/daynight/water_river.gdshader new file mode 100644 index 0000000..97164a3 --- /dev/null +++ b/core/daynight/water_river.gdshader @@ -0,0 +1,212 @@ +#define USE_CAUSTICS 1 +#define USE_REFRACTION 1 +#define USE_DISPLACEMENT 1 +#define USE_STYLIZED_LIGHTING 0 +#define USE_UNSHADED 0 + +shader_type spatial; +#if USE_UNSHADED +render_mode unshaded, depth_draw_never; +#else +render_mode depth_draw_never; +#endif + +uniform sampler2D DEPTH_TEXTURE: hint_depth_texture; + +group_uniforms Color; +uniform vec4 surface_color : source_color = vec4(0.2,1.0,0.8,1.0); +uniform vec4 depth_color : source_color = vec4(0.08,0.2,0.4,1.0); +uniform vec4 foam_color : source_color = vec4(1.0); +uniform float depth_size = 12.0; + +group_uniforms Roughness; +uniform float surface_roughness : hint_range(0.0, 1.0, 0.01) = 0.05; +uniform float foam_roughness : hint_range(0.0, 1.0, 0.01) = 0.05; + +#if USE_CAUSTICS +group_uniforms Caustics; +uniform sampler2D caustics_texture; +uniform float caustics_strength = 2.0; +uniform vec2 caustics_scale = vec2(0.5); +#endif + +group_uniforms Wave; +uniform sampler2D wave_texture; +#if !USE_UNSHADED +uniform sampler2D wave_normal_texture; +#endif +uniform float wave_softness : hint_range(0.0, 10.0, 0.1) = 3.0; +uniform vec2 wave_scale = vec2(0.2); +uniform vec2 wave_layer_scale = vec2(1.5); +uniform float wave_highlight : hint_range(0.0, 1.0, 0.05) = 0.5; + +group_uniforms Wave.Motion; +uniform vec2 wave_velocity = vec2(0.02); + +group_uniforms Foam; +uniform sampler2D foam_texture; +uniform float edge_foam_depth_size = 1.0; +uniform float wave_foam_amount : hint_range(0.0, 1.0, 0.01) = 0.8; +uniform float foam_start : hint_range(0.0, 1.0, 0.05) = 0.15; +uniform float foam_end : hint_range(0.0, 1.0, 0.05) = 0.3; +uniform float foam_exponent = 2.0; + +#if USE_REFRACTION +group_uniforms Refraction; +uniform float refraction_amount = 0.5; +uniform float refraction_exponent = 0.5; +#endif + +#if USE_DISPLACEMENT +group_uniforms Displacement; +uniform float displacement_amount = 0.3; +#endif + +#if USE_STYLIZED_LIGHTING && !USE_UNSHADED +group_uniforms Lighting; +uniform float diffuse_steps = 12.0; +uniform float diffuse_smoothness : hint_range(0.0, 1.0, 0.01) = 0.2; +uniform float specular_steps = 12.0; +uniform float specular_smoothness : hint_range(0.0, 1.0, 0.01) = 0.2; +#endif + +uniform sampler2D screen_texture : hint_screen_texture; +varying vec3 world_pos; + +#if USE_CAUSTICS +vec3 sample_caustics(vec2 uv){ + vec2 caustics_uv = uv * caustics_scale; + return vec3( + texture(caustics_texture, caustics_uv).r, + texture(caustics_texture, caustics_uv+vec2(0.02,0.02)).r, + texture(caustics_texture, caustics_uv+vec2(0.03,0.01)).r + ); +} +#endif + +vec4 sample_world_dpos(vec2 screen_uv, mat4 inv_proj_mat, mat4 inv_view_mat){ + vec4 clip_pos = vec4(screen_uv * 2.0 - 1.0, texture(DEPTH_TEXTURE, screen_uv).r, 1.0); + vec4 view_pos = inv_proj_mat * clip_pos; + view_pos /= view_pos.w; + vec4 world_dpos = inv_view_mat * view_pos; + return world_dpos; +} + +vec4 sample_wave(sampler2D tex, vec2 uv, vec2 velocity, float lod){ + vec2 base_uv = uv * wave_scale; + vec2 wave_uv1 = (base_uv * wave_layer_scale) + (TIME * -velocity); + float wave1 = textureLod(tex, wave_uv1, lod).r; + + vec2 wave_uv2 = base_uv + (TIME * velocity); + vec4 wave2 = textureLod(tex, wave_uv2 - (wave1 * 0.1), lod); + + return wave2; +} + +void vertex(){ + world_pos = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz; + + #if USE_DISPLACEMENT + float wave = sample_wave(wave_texture, world_pos.xz, wave_velocity, wave_softness).r; + VERTEX.y += wave*displacement_amount; + #endif +} + +void fragment() { + float wave = sample_wave(wave_texture, world_pos.xz, wave_velocity, wave_softness).r; + wave = smoothstep(0.0,1.0,wave); + + vec2 screen_uv = SCREEN_UV; + + // Refraction + #if USE_REFRACTION + screen_uv += ((pow(wave, refraction_exponent)*2.0 - 0.5) * 0.01 * refraction_amount); + + vec4 world_dpos = sample_world_dpos(screen_uv, INV_PROJECTION_MATRIX, INV_VIEW_MATRIX); + + float pre_depth = pow(clamp((world_dpos.y - world_pos.y + depth_size)/depth_size, 0.0, 1.0), 4.0); + screen_uv = mix(screen_uv, SCREEN_UV, pre_depth); + if(world_dpos.y - world_pos.y > 0.0){ + screen_uv = SCREEN_UV; + } + #else + vec4 world_dpos = sample_world_dpos(screen_uv, INV_PROJECTION_MATRIX, INV_VIEW_MATRIX); + #endif + + world_dpos = sample_world_dpos(screen_uv, INV_PROJECTION_MATRIX, INV_VIEW_MATRIX); + + vec2 surface_uv = world_dpos.xz * 0.2; + + float depth = pow(clamp((world_dpos.y - world_pos.y + depth_size)/depth_size, 0.0, 1.0), 4.0); + + // Caustics + #if USE_CAUSTICS + vec3 caustics1 = sample_caustics(surface_uv + (TIME * -wave_velocity)); + vec3 caustics2 = sample_caustics((surface_uv + (caustics1.r*0.05)) + (TIME * (wave_velocity*0.5))); + vec3 caustics = caustics2 * (1.0 - depth); + #endif + + // Edge Foam + float edge_foam_depth = clamp((world_dpos.y - world_pos.y + edge_foam_depth_size)/edge_foam_depth_size, 0.0, 1.0); + + // Wave Foam + float wave_foam = wave; + float foam = max(edge_foam_depth, wave_foam * wave_foam_amount); + + float foam_shape = 1.0 - texture(foam_texture, world_pos.xz* 0.5).r; + foam = clamp((foam - foam_start) / (foam_end - foam_start), 0.0, 1.0); + foam = clamp((foam - foam_shape) / (1.0 - foam_shape), 0.0, 1.0); + foam = pow(foam, foam_exponent); + + vec3 flat_color = mix(depth_color, surface_color, depth).rgb; + + vec4 screen = texture(screen_texture, screen_uv); + vec3 color = screen.rgb; + #if USE_CAUSTICS + color += vec3(pow(caustics * caustics_strength, vec3(2.0))); + #endif + color = mix(flat_color, color, 0.4 * depth); + color = mix(color, surface_color.rgb, wave * wave_highlight); + color = mix(color, foam_color.rgb, foam); + + #if !USE_UNSHADED + vec3 wave_normal_map = sample_wave(wave_normal_texture, world_pos.xz, wave_velocity, wave_softness).rgb; + NORMAL_MAP = wave_normal_map; + #endif + + ROUGHNESS = mix(surface_roughness, foam_roughness, foam); + + ALBEDO = color; +} + +#if USE_STYLIZED_LIGHTING && !USE_UNSHADED +void light(){ + float ndotl = dot(NORMAL, LIGHT) * ATTENUATION; + //ndotl = smoothstep(0.0,1.0-ROUGHNESS,ndotl); + float light = ndotl; + + float light_mult = light * diffuse_steps; + float light_step_base = floor(light_mult); + float light_factor = light_mult - light_step_base; + + light_factor = smoothstep(0.5 - diffuse_smoothness * 0.5, 0.5 + diffuse_smoothness * 0.5, light_factor); + light = (light_step_base + light_factor) / diffuse_steps; + + DIFFUSE_LIGHT += (LIGHT_COLOR+ALBEDO) * light / PI; + + float roughness = mix(0.01, 0.99, ROUGHNESS); + vec3 h = normalize(VIEW + LIGHT); + float ndoth = clamp(dot(NORMAL, h), 0.0, 1.0) * ATTENUATION; + float specular = clamp(pow(ndoth, 16.0/(roughness)), 0.1, 0.99); + specular = mix(pow(specular, 2.0-roughness),0.00,pow(roughness, 0.1)); + + float specular_mult = specular * specular_steps; + float specular_step_base = floor(specular_mult); + float specular_factor = specular_mult - specular_step_base; + + specular_factor = smoothstep(0.5 - specular_smoothness * 0.5, 0.5 + specular_smoothness * 0.5, specular_factor); + specular = (specular_step_base + specular_factor) / specular_steps; + + SPECULAR_LIGHT += (LIGHT_COLOR + ALBEDO) * specular; +} +#endif diff --git a/core/daynight/water_river.gdshader.uid b/core/daynight/water_river.gdshader.uid new file mode 100644 index 0000000..65c7870 --- /dev/null +++ b/core/daynight/water_river.gdshader.uid @@ -0,0 +1 @@ +uid://cb12c2j8rfu6a diff --git a/tgcc/chunk/material/water_river.tres b/tgcc/chunk/material/water_river.tres new file mode 100644 index 0000000..e3a8e55 --- /dev/null +++ b/tgcc/chunk/material/water_river.tres @@ -0,0 +1,44 @@ +[gd_resource type="ShaderMaterial" format=3 uid="uid://d37iugof887py"] + +[ext_resource type="Shader" uid="uid://cb12c2j8rfu6a" path="res://core/daynight/water_river.gdshader" id="1_qxgaw"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_qxgaw"] + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_ix712"] +noise = SubResource("FastNoiseLite_qxgaw") +seamless = true + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_ssur3"] +frequency = 0.0228 +fractal_type = 2 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_qgvya"] +noise = SubResource("FastNoiseLite_ssur3") +seamless = true + +[resource] +render_priority = 1 +shader = ExtResource("1_qxgaw") +shader_parameter/surface_color = Color(0.2, 1, 0.8, 1) +shader_parameter/depth_color = Color(0.18124294, 0.496769, 0.33694285, 1) +shader_parameter/foam_color = Color(0.6663343, 0.7351854, 0.66567737, 1) +shader_parameter/depth_size = 12.0 +shader_parameter/surface_roughness = 0.05 +shader_parameter/foam_roughness = 0.05 +shader_parameter/caustics_strength = 2.0 +shader_parameter/caustics_scale = Vector2(0.5, 0.5) +shader_parameter/wave_texture = SubResource("NoiseTexture2D_qgvya") +shader_parameter/wave_softness = 2.80000004172336 +shader_parameter/wave_scale = Vector2(0.2, 0.2) +shader_parameter/wave_layer_scale = Vector2(1.5, 1.5) +shader_parameter/wave_highlight = 1.0 +shader_parameter/wave_velocity = Vector2(0.01, 0.15) +shader_parameter/foam_texture = SubResource("NoiseTexture2D_ix712") +shader_parameter/edge_foam_depth_size = 1.0 +shader_parameter/wave_foam_amount = 0.3499999921768 +shader_parameter/foam_start = 0.15000000223518 +shader_parameter/foam_end = 0.35000000521542 +shader_parameter/foam_exponent = 2.0 +shader_parameter/refraction_amount = 0.5 +shader_parameter/refraction_exponent = 0.5 +shader_parameter/displacement_amount = 0.0 diff --git a/tgcc/chunk/railway/scene/chunk_railway_straight_3.tscn b/tgcc/chunk/railway/scene/chunk_railway_straight_3.tscn index a5dcc69..6301af2 100644 --- a/tgcc/chunk/railway/scene/chunk_railway_straight_3.tscn +++ b/tgcc/chunk/railway/scene/chunk_railway_straight_3.tscn @@ -10,7 +10,7 @@ [ext_resource type="Material" uid="uid://cn20mp8ep3yxu" path="res://tgcc/chunk/material/wires.tres" id="5_1vb6v"] [ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="5_8e6cq"] [ext_resource type="Material" uid="uid://o31kp0jm07q3" path="res://tgcc/chunk/material/rocks.tres" id="6_1vb6v"] -[ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="7_4wpy1"] +[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="8_3rloo"] [ext_resource type="Material" uid="uid://jygb1hcokks5" path="res://tgcc/chunk/prop/grass/grass_bank.tres" id="8_vtlx3"] [sub_resource type="PlaneMesh" id="PlaneMesh_1vb6v"] @@ -66,7 +66,7 @@ surface_material_override/1 = ExtResource("5_1vb6v") surface_material_override/0 = ExtResource("6_1vb6v") [node name="Water_F_008" parent="." index="5" unique_id=1612455466] -surface_material_override/0 = ExtResource("7_4wpy1") +surface_material_override/0 = ExtResource("8_3rloo") [node name="grass" type="Node3D" parent="." index="6" unique_id=50370298 groups=["weather_vegetables_node", "wind_node"]] diff --git a/tgcc/chunk/river/scene/chunk_river_cross_1.tscn b/tgcc/chunk/river/scene/chunk_river_cross_1.tscn index 8f757a1..a13e7f4 100644 --- a/tgcc/chunk/river/scene/chunk_river_cross_1.tscn +++ b/tgcc/chunk/river/scene/chunk_river_cross_1.tscn @@ -7,9 +7,9 @@ [ext_resource type="Material" uid="uid://4xhpd6lust7w" path="res://tgcc/chunk/material/path_chunk.tres" id="4_amhor"] [ext_resource type="Material" uid="uid://jygb1hcokks5" path="res://tgcc/chunk/prop/grass/grass_bank.tres" id="4_nbenq"] [ext_resource type="Material" uid="uid://fnjxocmx16b7" path="res://tgcc/chunk/prop/grass/grass_chunk.tres" id="5_062h7"] -[ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="5_nbenq"] [ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="6_50ej2"] [ext_resource type="Material" uid="uid://dbmyfi5t0yfy" path="res://tgcc/chunk/prop/house/house_emissiv.tres" id="6_062h7"] +[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="6_es1d0"] [ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="7_0snf2"] [ext_resource type="Shader" uid="uid://d0ch5ofrgf7y6" path="res://core/daynight/trunk_shader.gdshader" id="7_50ej2"] [ext_resource type="Material" uid="uid://buxlrrpn7rdgs" path="res://tgcc/chunk/material/wood.tres" id="8_0snf2"] @@ -105,31 +105,31 @@ west = true river_north = true river_south = true -[node name="Argini_F_003" parent="." index="0" unique_id=1175292801] +[node name="Argini_F_003" parent="." index="0" unique_id=1943456620] surface_material_override/0 = ExtResource("2_wqn5s") -[node name="Flower_021" parent="." index="1" unique_id=446320265] +[node name="Flower_021" parent="." index="1" unique_id=1248562513] visible = false -[node name="FlowerG_020" parent="." index="2" unique_id=2064549907] +[node name="FlowerG_020" parent="." index="2" unique_id=522984193] visible = false -[node name="MSH_Staccioanta_1_019" parent="." index="3" unique_id=337692191] +[node name="MSH_Staccioanta_1_019" parent="." index="3" unique_id=712328040] surface_material_override/0 = ExtResource("3_amhor") -[node name="Strada_011" parent="." index="4" unique_id=1430530551] +[node name="Strada_011" parent="." index="4" unique_id=1636902357] surface_material_override/0 = ExtResource("4_amhor") -[node name="Water_F_003" parent="." index="5" unique_id=365812789] -surface_material_override/0 = ExtResource("5_nbenq") +[node name="Water_F_003" parent="." index="5" unique_id=1352549891] +surface_material_override/0 = ExtResource("6_es1d0") -[node name="bridge" parent="." index="6" unique_id=155043516] +[node name="bridge" parent="." index="6" unique_id=283522162] surface_material_override/0 = ExtResource("6_062h7") surface_material_override/1 = SubResource("ShaderMaterial_0snf2") surface_material_override/2 = ExtResource("8_0snf2") surface_material_override/3 = SubResource("ShaderMaterial_i6s7h") -[node name="grass" parent="." index="7" unique_id=1663404811] +[node name="grass" parent="." index="7" unique_id=863206516] surface_material_override/0 = ExtResource("2_wqn5s") [node name="grass2" type="Node3D" parent="." index="8" unique_id=1023384553 groups=["weather_vegetables_node", "wind_node"]] diff --git a/tgcc/chunk/river/scene/chunk_river_curve_1.tscn b/tgcc/chunk/river/scene/chunk_river_curve_1.tscn index 34e1ac4..b4b0331 100644 --- a/tgcc/chunk/river/scene/chunk_river_curve_1.tscn +++ b/tgcc/chunk/river/scene/chunk_river_curve_1.tscn @@ -7,6 +7,7 @@ [ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="3_bmrw7"] [ext_resource type="Material" uid="uid://jygb1hcokks5" path="res://tgcc/chunk/prop/grass/grass_bank.tres" id="3_x8fyt"] [ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="4_bmrw7"] +[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="5_wcs53"] [ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="5_y4odd"] [sub_resource type="PlaneMesh" id="PlaneMesh_k0xin"] @@ -50,20 +51,20 @@ script = ExtResource("2_bmrw7") river_south = true river_west = true -[node name="Argini_009" parent="." index="0" unique_id=373965021] +[node name="Argini_009" parent="." index="0" unique_id=650454440] surface_material_override/0 = ExtResource("2_x8fyt") -[node name="Argini_F_001" parent="." index="1" unique_id=1543471884] +[node name="Argini_F_001" parent="." index="1" unique_id=1709224433] surface_material_override/0 = ExtResource("2_x8fyt") -[node name="Chunk_017" parent="." index="2" unique_id=1639631482] +[node name="Chunk_017" parent="." index="2" unique_id=1001158626] surface_material_override/0 = ExtResource("2_x8fyt") -[node name="Water_010" parent="." index="3" unique_id=348287576] +[node name="Water_010" parent="." index="3" unique_id=822678307] surface_material_override/0 = ExtResource("3_bmrw7") -[node name="Water_F_001" parent="." index="4" unique_id=24270399] -surface_material_override/0 = ExtResource("3_bmrw7") +[node name="Water_F_001" parent="." index="4" unique_id=1952113981] +surface_material_override/0 = ExtResource("5_wcs53") [node name="grass" type="Node3D" parent="." index="5" unique_id=91576374 groups=["weather_vegetables_node", "wind_node"]] diff --git a/tgcc/chunk/river/scene/chunk_river_end_1.tscn b/tgcc/chunk/river/scene/chunk_river_end_1.tscn index 39fad93..1bdf97b 100644 --- a/tgcc/chunk/river/scene/chunk_river_end_1.tscn +++ b/tgcc/chunk/river/scene/chunk_river_end_1.tscn @@ -10,6 +10,7 @@ [ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="5_w8tpk"] [ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="6_i0i0i"] [ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="6_tf5mu"] +[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="7_w3iym"] [ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="11_tf5mu"] [sub_resource type="PlaneMesh" id="PlaneMesh_tf5mu"] @@ -52,26 +53,26 @@ size = Vector2(1, 1) script = ExtResource("2_kvbtp") river_north = true -[node name="Argini_018" parent="." index="0" unique_id=103668679] +[node name="Argini_018" parent="." index="0" unique_id=798153780] surface_material_override/0 = ExtResource("3_4mfxv") -[node name="Argini_F_002" parent="." index="1" unique_id=515347137] +[node name="Argini_F_002" parent="." index="1" unique_id=224286275] surface_material_override/0 = ExtResource("3_4mfxv") -[node name="Cube_034" parent="." index="2" unique_id=1884200507] +[node name="Cube_034" parent="." index="2" unique_id=763901855] surface_material_override/0 = ExtResource("4_w8tpk") -[node name="Grass_020" parent="." index="3" unique_id=795966800] +[node name="Grass_020" parent="." index="3" unique_id=1008856994] surface_material_override/0 = ExtResource("3_4mfxv") -[node name="MSH_Staccioanta_1_021" parent="." index="4" unique_id=953303128] +[node name="MSH_Staccioanta_1_021" parent="." index="4" unique_id=1790761410] surface_material_override/0 = ExtResource("5_i0i0i") -[node name="Water_019" parent="." index="5" unique_id=819094104] +[node name="Water_019" parent="." index="5" unique_id=1519616413] surface_material_override/0 = ExtResource("6_tf5mu") -[node name="Water_F_002" parent="." index="6" unique_id=1201466504] -surface_material_override/0 = ExtResource("6_tf5mu") +[node name="Water_F_002" parent="." index="6" unique_id=903800211] +surface_material_override/0 = ExtResource("7_w3iym") [node name="grass2" type="Node3D" parent="." index="7" unique_id=1169806788 groups=["weather_vegetables_node", "wind_node"]] diff --git a/tgcc/chunk/river/scene/chunk_river_mix1_1.tscn b/tgcc/chunk/river/scene/chunk_river_mix1_1.tscn index afa0a45..d95d712 100644 --- a/tgcc/chunk/river/scene/chunk_river_mix1_1.tscn +++ b/tgcc/chunk/river/scene/chunk_river_mix1_1.tscn @@ -17,6 +17,7 @@ [ext_resource type="Material" uid="uid://baot4vy3fqrdw" path="res://tgcc/chunk/prop/flower/bush.tres" id="11_2l46r"] [ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="11_3krle"] [ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="12_0xjwt"] +[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="12_nfiu6"] [sub_resource type="PlaneMesh" id="PlaneMesh_cnnpi"] size = Vector2(0.5, 0.5) @@ -86,57 +87,57 @@ script = ExtResource("2_8ueaj") west = true river_south = true -[node name="Argini_013" parent="." index="0" unique_id=182908030] +[node name="Argini_013" parent="." index="0" unique_id=1870487458] surface_material_override/0 = ExtResource("3_oqr18") -[node name="Argini_F_005" parent="." index="1" unique_id=86756380] +[node name="Argini_F_005" parent="." index="1" unique_id=1126095130] surface_material_override/0 = ExtResource("3_oqr18") -[node name="Cavi_008" parent="." index="3" unique_id=1686049927] +[node name="Cavi_008" parent="." index="3" unique_id=613985618] surface_material_override/0 = ExtResource("4_h5fgh") surface_material_override/1 = ExtResource("4_h5fgh") -[node name="Cortile_006" parent="." index="4" unique_id=967194955] +[node name="Cortile_006" parent="." index="4" unique_id=1701095883] surface_material_override/0 = ExtResource("5_5r0cx") -[node name="Cube_036" parent="." index="5" unique_id=1001447660] +[node name="Cube_036" parent="." index="5" unique_id=672869904] surface_material_override/0 = ExtResource("6_wdn0q") -[node name="Flower_012" parent="." index="6" unique_id=1767214109] +[node name="Flower_012" parent="." index="6" unique_id=2051395944] visible = false -[node name="FlowerG_011" parent="." index="7" unique_id=1579830786] +[node name="FlowerG_011" parent="." index="7" unique_id=1394853760] visible = false -[node name="Grass_016" parent="." index="8" unique_id=1247875526] +[node name="Grass_016" parent="." index="8" unique_id=1019594918] surface_material_override/0 = ExtResource("3_oqr18") -[node name="House_M_3_001|Cube_212|Dupli|" parent="House_M_3_001" parent_id_path=PackedInt32Array(164742285) index="0" unique_id=476149365] +[node name="House_M_3_001|Cube_212|Dupli|" parent="House_M_3_001" parent_id_path=PackedInt32Array(2053098324) index="0" unique_id=1484776379] surface_material_override/0 = ExtResource("7_h5fgh") surface_material_override/1 = ExtResource("8_5r0cx") -[node name="Lanterne_008" parent="." index="10" unique_id=1540978561] +[node name="Lanterne_008" parent="." index="10" unique_id=2140482727] surface_material_override/0 = ExtResource("8_5r0cx") surface_material_override/1 = ExtResource("7_h5fgh") -[node name="MSH_Staccioanta_1_013" parent="." index="11" unique_id=169367927] +[node name="MSH_Staccioanta_1_013" parent="." index="11" unique_id=1624527004] surface_material_override/0 = ExtResource("9_kfusd") -[node name="PaliLuci_006" parent="." index="12" unique_id=67521119] +[node name="PaliLuci_006" parent="." index="12" unique_id=604291129] surface_material_override/0 = ExtResource("10_3krle") surface_material_override/1 = ExtResource("10_3krle") -[node name="Panchina_001" parent="." index="13" unique_id=1583765035] +[node name="Panchina_001" parent="." index="13" unique_id=1738965733] surface_material_override/0 = ExtResource("10_3krle") -[node name="Strada_012" parent="." index="14" unique_id=816505107] +[node name="Strada_012" parent="." index="14" unique_id=809715190] surface_material_override/0 = ExtResource("5_5r0cx") -[node name="Water_014" parent="." index="15" unique_id=1927503386] +[node name="Water_014" parent="." index="15" unique_id=1068824614] surface_material_override/0 = ExtResource("11_3krle") -[node name="Water_F_005" parent="." index="16" unique_id=679348897] -surface_material_override/0 = ExtResource("11_3krle") +[node name="Water_F_005" parent="." index="16" unique_id=607663394] +surface_material_override/0 = ExtResource("12_nfiu6") [node name="grass" type="Node3D" parent="." index="17" unique_id=64319559 groups=["weather_vegetables_node", "wind_node"]] diff --git a/tgcc/chunk/river/scene/chunk_river_mix2_1.tscn b/tgcc/chunk/river/scene/chunk_river_mix2_1.tscn index 09a67a6..681d17b 100644 --- a/tgcc/chunk/river/scene/chunk_river_mix2_1.tscn +++ b/tgcc/chunk/river/scene/chunk_river_mix2_1.tscn @@ -17,7 +17,7 @@ [ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="8_homdn"] [ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="9_aimrl"] [ext_resource type="Material" uid="uid://buxlrrpn7rdgs" path="res://tgcc/chunk/material/wood.tres" id="9_tbfcp"] -[ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="10_tbfcp"] +[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="11_sc7dg"] [sub_resource type="PlaneMesh" id="PlaneMesh_tbfcp"] size = Vector2(0.5, 0.5) @@ -72,51 +72,51 @@ script = ExtResource("2_oo15q") west = true river_est = true -[node name="Argini_F_006" parent="." index="0" unique_id=1126743135] +[node name="Argini_F_006" parent="." index="0" unique_id=2052595324] surface_material_override/0 = ExtResource("2_07njl") -[node name="Cavi_011" parent="." index="2" unique_id=1763299309] +[node name="Cavi_011" parent="." index="2" unique_id=1189119357] surface_material_override/0 = ExtResource("3_6i64l") surface_material_override/1 = ExtResource("3_6i64l") -[node name="Cortile_008" parent="." index="3" unique_id=1956931473] +[node name="Cortile_008" parent="." index="3" unique_id=529393833] surface_material_override/0 = ExtResource("4_chuhj") -[node name="Cube_037" parent="." index="4" unique_id=1611037455] +[node name="Cube_037" parent="." index="4" unique_id=625928553] surface_material_override/0 = ExtResource("5_nh4uy") -[node name="Flower_023" parent="." index="5" unique_id=1487817171] +[node name="Flower_023" parent="." index="5" unique_id=1437698922] visible = false -[node name="FlowerG_021" parent="." index="6" unique_id=1504655405] +[node name="FlowerG_021" parent="." index="6" unique_id=158388662] visible = false -[node name="Grass_021" parent="." index="7" unique_id=2015786655] +[node name="Grass_021" parent="." index="7" unique_id=1075425630] surface_material_override/0 = ExtResource("2_07njl") -[node name="House_M_3_002|Cube_212|Dupli|" parent="House_M_3_002" parent_id_path=PackedInt32Array(1702626747) index="0" unique_id=1161914945] +[node name="House_M_3_002|Cube_212|Dupli|" parent="House_M_3_002" parent_id_path=PackedInt32Array(1644604359) index="0" unique_id=344353544] surface_material_override/0 = ExtResource("6_q0cqc") surface_material_override/1 = ExtResource("7_homdn") -[node name="Lanterne_011" parent="." index="9" unique_id=1514816515] +[node name="Lanterne_011" parent="." index="9" unique_id=1023227540] surface_material_override/0 = ExtResource("7_homdn") surface_material_override/1 = ExtResource("6_q0cqc") -[node name="MSH_Staccioanta_1_023" parent="." index="10" unique_id=712801400] +[node name="MSH_Staccioanta_1_023" parent="." index="10" unique_id=960191706] surface_material_override/0 = ExtResource("8_aimrl") -[node name="PaliLuci_009" parent="." index="11" unique_id=985008253] +[node name="PaliLuci_009" parent="." index="11" unique_id=895643506] surface_material_override/0 = ExtResource("9_tbfcp") surface_material_override/1 = ExtResource("9_tbfcp") -[node name="Panchina_004" parent="." index="12" unique_id=728819824] +[node name="Panchina_004" parent="." index="12" unique_id=1990542139] surface_material_override/0 = ExtResource("9_tbfcp") -[node name="Strada_016" parent="." index="13" unique_id=1488681208] +[node name="Strada_016" parent="." index="13" unique_id=913638745] surface_material_override/0 = ExtResource("4_chuhj") -[node name="Water_F_006" parent="." index="14" unique_id=734464738] -surface_material_override/0 = ExtResource("10_tbfcp") +[node name="Water_F_006" parent="." index="14" unique_id=188313823] +surface_material_override/0 = ExtResource("11_sc7dg") [node name="grass2" type="Node3D" parent="." index="15" unique_id=830319566 groups=["weather_vegetables_node", "wind_node"]] diff --git a/tgcc/chunk/river/scene/chunk_river_mix3_1.tscn b/tgcc/chunk/river/scene/chunk_river_mix3_1.tscn index 4fcd298..f11eece 100644 --- a/tgcc/chunk/river/scene/chunk_river_mix3_1.tscn +++ b/tgcc/chunk/river/scene/chunk_river_mix3_1.tscn @@ -13,6 +13,7 @@ [ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="6_scsij"] [ext_resource type="Material" uid="uid://baot4vy3fqrdw" path="res://tgcc/chunk/prop/flower/bush.tres" id="7_6ts01"] [ext_resource type="Material" uid="uid://f5uoreickew7" path="res://tgcc/chunk/prop/flower/flower.tres" id="8_gg6s1"] +[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="8_rc623"] [ext_resource type="PackedScene" uid="uid://c7hdw2g6sbygr" path="res://tgcc/chunk/prop/tree/bambù/bambù.tscn" id="9_fbq43"] [sub_resource type="PlaneMesh" id="PlaneMesh_4bk23"] @@ -74,37 +75,37 @@ script = ExtResource("2_6ts01") west = true river_north = true -[node name="Argini_014" parent="." index="0" unique_id=1139734568] +[node name="Argini_014" parent="." index="0" unique_id=1144332199] surface_material_override/0 = ExtResource("2_6cke1") surface_material_override/1 = ExtResource("2_6cke1") -[node name="Argini_F_007" parent="." index="1" unique_id=1589622689] +[node name="Argini_F_007" parent="." index="1" unique_id=1754711084] surface_material_override/0 = ExtResource("2_6cke1") -[node name="Chunk_024" parent="." index="2" unique_id=1992937907] +[node name="Chunk_024" parent="." index="2" unique_id=1720184777] surface_material_override/0 = ExtResource("2_6cke1") -[node name="Chunk_033" parent="." index="3" unique_id=1670985495] +[node name="Chunk_033" parent="." index="3" unique_id=1628229952] surface_material_override/0 = ExtResource("3_dxc7w") -[node name="Cube_038" parent="." index="4" unique_id=441517098] +[node name="Cube_038" parent="." index="4" unique_id=2039579000] surface_material_override/0 = ExtResource("4_wiylo") -[node name="Flower_013" parent="." index="5" unique_id=628414084] +[node name="Flower_013" parent="." index="5" unique_id=1366790519] visible = false -[node name="FlowerG_012" parent="." index="6" unique_id=154914059] +[node name="FlowerG_012" parent="." index="6" unique_id=73383829] visible = false -[node name="MSH_Staccioanta_1_014" parent="." index="7" unique_id=572229045] +[node name="MSH_Staccioanta_1_014" parent="." index="7" unique_id=1893629780] surface_material_override/0 = ExtResource("5_scsij") -[node name="Water_015" parent="." index="8" unique_id=1718475690] +[node name="Water_015" parent="." index="8" unique_id=1485337117] surface_material_override/0 = ExtResource("6_6ts01") surface_material_override/1 = ExtResource("6_6ts01") -[node name="Water_F_007" parent="." index="9" unique_id=986965099] -surface_material_override/0 = ExtResource("6_6ts01") +[node name="Water_F_007" parent="." index="9" unique_id=1341709621] +surface_material_override/0 = ExtResource("8_rc623") [node name="grass" type="Node3D" parent="." index="10" unique_id=970290101 groups=["weather_vegetables_node", "wind_node"]] diff --git a/tgcc/chunk/river/scene/chunk_river_straight_1.tscn b/tgcc/chunk/river/scene/chunk_river_straight_1.tscn index e385235..d92e777 100644 --- a/tgcc/chunk/river/scene/chunk_river_straight_1.tscn +++ b/tgcc/chunk/river/scene/chunk_river_straight_1.tscn @@ -6,6 +6,7 @@ [ext_resource type="Material" uid="uid://wkegx4a21x7u" path="res://tgcc/chunk/prop/fence/fences.tres" id="3_1ies1"] [ext_resource type="Material" uid="uid://ce0bdk3mx2xao" path="res://tgcc/chunk/material/water_chunk.tres" id="4_i686r"] [ext_resource type="Material" uid="uid://jygb1hcokks5" path="res://tgcc/chunk/prop/grass/grass_bank.tres" id="5_ktw8y"] +[ext_resource type="Material" uid="uid://d37iugof887py" path="res://tgcc/chunk/material/water_river.tres" id="6_1x4pw"] [ext_resource type="Material" uid="uid://fnjxocmx16b7" path="res://tgcc/chunk/prop/grass/grass_chunk.tres" id="6_5ybl1"] [ext_resource type="Material" uid="uid://bjrb33qwp1p43" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds.tres" id="7_qdud6"] [ext_resource type="Material" uid="uid://0x17mj2v807r" path="res://tgcc/chunk/prop/grass/grass_chunk_weeds2.tres" id="8_kb5sp"] @@ -51,23 +52,23 @@ script = ExtResource("2_5ybl1") river_north = true river_south = true -[node name="Argini_012" parent="." index="0" unique_id=1084179435] +[node name="Argini_012" parent="." index="0" unique_id=1496170995] surface_material_override/0 = ExtResource("2_i686r") -[node name="Argini_F" parent="." index="1" unique_id=642828061] +[node name="Argini_F" parent="." index="1" unique_id=1620075990] surface_material_override/0 = ExtResource("2_i686r") -[node name="Grass_015" parent="." index="2" unique_id=2066454616] +[node name="Grass_015" parent="." index="2" unique_id=992510499] surface_material_override/0 = ExtResource("2_i686r") -[node name="MSH_Staccioanta_1_012" parent="." index="3" unique_id=2079392766 groups=["weather_node"]] +[node name="MSH_Staccioanta_1_012" parent="." index="3" unique_id=1633713740 groups=["weather_node"]] surface_material_override/0 = ExtResource("3_1ies1") -[node name="Water_013" parent="." index="4" unique_id=1140122560] +[node name="Water_013" parent="." index="4" unique_id=1791049567] surface_material_override/0 = ExtResource("4_i686r") -[node name="Water_F" parent="." index="5" unique_id=650822427] -surface_material_override/0 = ExtResource("4_i686r") +[node name="Water_F" parent="." index="5" unique_id=1468867913] +surface_material_override/0 = ExtResource("6_1x4pw") [node name="grass" type="Node3D" parent="." index="6" unique_id=1828409688 groups=["weather_vegetables_node", "wind_node"]]