diff --git a/docs/briefs/captures/terrain_showcase_boulders.png b/docs/briefs/captures/terrain_showcase_boulders.png index 5712f6a..fbce7e1 100644 Binary files a/docs/briefs/captures/terrain_showcase_boulders.png and b/docs/briefs/captures/terrain_showcase_boulders.png differ diff --git a/docs/briefs/captures/terrain_showcase_canyon.png b/docs/briefs/captures/terrain_showcase_canyon.png index a77785c..7084aa1 100644 Binary files a/docs/briefs/captures/terrain_showcase_canyon.png and b/docs/briefs/captures/terrain_showcase_canyon.png differ diff --git a/docs/briefs/captures/terrain_showcase_crevasse.png b/docs/briefs/captures/terrain_showcase_crevasse.png index 2387663..1e11703 100644 Binary files a/docs/briefs/captures/terrain_showcase_crevasse.png and b/docs/briefs/captures/terrain_showcase_crevasse.png differ diff --git a/docs/briefs/captures/terrain_showcase_spurs.png b/docs/briefs/captures/terrain_showcase_spurs.png index ebd9bc9..b5c91cc 100644 Binary files a/docs/briefs/captures/terrain_showcase_spurs.png and b/docs/briefs/captures/terrain_showcase_spurs.png differ diff --git a/docs/briefs/captures/zone1_vigilant_plateau.png b/docs/briefs/captures/zone1_vigilant_plateau.png index 6a48704..f44e15c 100644 Binary files a/docs/briefs/captures/zone1_vigilant_plateau.png and b/docs/briefs/captures/zone1_vigilant_plateau.png differ diff --git a/docs/briefs/captures/zone1_vigilant_tombant.png b/docs/briefs/captures/zone1_vigilant_tombant.png index 847168a..e3e9847 100644 Binary files a/docs/briefs/captures/zone1_vigilant_tombant.png and b/docs/briefs/captures/zone1_vigilant_tombant.png differ diff --git a/docs/briefs/terrain-site-zone1-gameplay.md b/docs/briefs/terrain-site-zone1-gameplay.md index 0fa5076..038e1be 100644 --- a/docs/briefs/terrain-site-zone1-gameplay.md +++ b/docs/briefs/terrain-site-zone1-gameplay.md @@ -250,6 +250,13 @@ de contacts existant les sépare du fond. du tombant, têtes de corail sur les patch reefs, rien d'animé. - Brouillard, lumière directionnelle et particules de la scène de test actuelle sont conservés et réglés par site. +- Passe lumière du 2026-10-06 (`dive_site.tscn`) : l'ambiance vient d'un ciel + procédural sous-marin (haut turquoise, horizon aligné sur le brouillard, bas + presque noir), ce qui éclaire les faces à l'ombre ; la source d'ambiance + « ciel » était déclarée sans ciel, d'où les ombres noires. Directionnelle + plus haute et plus forte (62°, 1,35) avec ombres douces à 70 % d'opacité, + SSAO pour l'occlusion à l'échelle du maillage, tonemap filmique, perspective + aérienne et albédo du brouillard volumétrique teintés. **État du 2026-10-06 (demande d'Olivier)** : le shader mélange sable et roche par la pente à partir de 20° (sable sous 20°, roche au-dessus de 40°, fondu diff --git a/game/world/sites/dive_site.tscn b/game/world/sites/dive_site.tscn index e6acd7b..c62f654 100644 --- a/game/world/sites/dive_site.tscn +++ b/game/world/sites/dive_site.tscn @@ -1,31 +1,69 @@ -[gd_scene load_steps=4 format=3] +[gd_scene load_steps=6 format=3] [ext_resource type="Script" path="res://game/world/sites/dive_site.gd" id="1_site"] [ext_resource type="Script" path="res://game/world/sites/bathymetric_terrain_actor.gd" id="2_terrain"] +[sub_resource type="ProceduralSkyMaterial" id="SkyUnderwater"] +sky_top_color = Color(0.3, 0.62, 0.64, 1) +sky_horizon_color = Color(0.13, 0.36, 0.41, 1) +sky_curve = 0.2 +sky_energy_multiplier = 1.0 +ground_horizon_color = Color(0.11, 0.3, 0.35, 1) +ground_bottom_color = Color(0.015, 0.05, 0.07, 1) +ground_curve = 0.1 +ground_energy_multiplier = 0.6 +sun_angle_max = 40.0 +sun_curve = 0.3 +use_debanding = true + +[sub_resource type="Sky" id="SkyResource"] +sky_material = SubResource("SkyUnderwater") +process_mode = 2 +radiance_size = 2 + [sub_resource type="Environment" id="EnvironmentUnderwater"] -background_mode = 1 -background_color = Color(0.034, 0.12, 0.144, 1) +background_mode = 2 +sky = SubResource("SkyResource") ambient_light_source = 3 -ambient_light_color = Color(0.12, 0.32, 0.37, 1) -ambient_light_energy = 0.55 +ambient_light_sky_contribution = 1.0 +ambient_light_energy = 1.0 +reflected_light_source = 1 +tonemap_mode = 2 +tonemap_exposure = 1.15 +tonemap_white = 4.0 +ssao_enabled = true +ssao_radius = 2.5 +ssao_intensity = 2.2 +ssao_power = 1.6 +ssao_detail = 0.6 +ssao_horizon = 0.08 +ssao_light_affect = 0.25 +ssao_ao_channel_affect = 0.4 glow_enabled = true glow_levels/1 = 1.0 glow_levels/2 = 1.0 glow_levels/3 = 0.6 glow_levels/4 = 0.2 -glow_intensity = 1.0 +glow_intensity = 0.8 glow_blend_mode = 0 -glow_hdr_threshold = 1.0 +glow_hdr_threshold = 1.2 fog_enabled = true -fog_light_color = Color(0.07, 0.25, 0.3, 1) -fog_light_energy = 0.48 +fog_light_color = Color(0.1, 0.3, 0.35, 1) +fog_light_energy = 0.52 +fog_sun_scatter = 0.15 fog_density = 0.006 +fog_aerial_perspective = 0.5 fog_height = -4.0 fog_height_density = 0.025 volumetric_fog_enabled = true volumetric_fog_density = 0.01 +volumetric_fog_albedo = Color(0.6, 0.85, 0.9, 1) +volumetric_fog_anisotropy = 0.45 volumetric_fog_length = 72.0 +volumetric_fog_ambient_inject = 0.5 +adjustment_enabled = true +adjustment_contrast = 1.06 +adjustment_saturation = 1.08 [node name="DiveSite" type="Node3D"] script = ExtResource("1_site") @@ -34,10 +72,15 @@ script = ExtResource("1_site") environment = SubResource("EnvironmentUnderwater") [node name="AmbientDirection" type="DirectionalLight3D" parent="."] -rotation_degrees = Vector3(-52, -24, 0) -light_color = Color(0.39, 0.65, 0.7, 1) -light_energy = 0.75 +rotation_degrees = Vector3(-62, -28, 0) +light_color = Color(0.56, 0.8, 0.82, 1) +light_energy = 1.35 +light_angular_distance = 3.0 shadow_enabled = true +shadow_opacity = 0.7 +shadow_blur = 2.0 +directional_shadow_max_distance = 160.0 +directional_shadow_fade_start = 0.75 [node name="Terrain" type="StaticBody3D" parent="."] unique_name_in_owner = true