feat(world): depth-attenuated daylight and cold-water palette for the seabed

The seabed shader applies per-channel Beer-Lambert transmittance relative
to a 24 m reference depth: the scalar part dims the directional light in a
custom light() function and the sky ambient through AO, the chroma part
tints the albedo, and artificial lights are left untouched for the
submarine's projectors. Sky, fog and sun are cooled and the sun softened
so the plateau reads green-blue, the canyon floor cold blue and the
drop-off foot near-indigo.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
OlivierandClaude Fable 5.1 committed 2026-10-06 23:21:14 +02:00
1 parent 26a7dfc4f7
commit 34b39a8dbc
9 files changed
+58 -23

No files matched your search

+11 -11
View File
@@ -4,12 +4,12 @@
[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_top_color = Color(0.22, 0.52, 0.66, 1)
sky_horizon_color = Color(0.09, 0.28, 0.4, 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_horizon_color = Color(0.05, 0.17, 0.27, 1)
ground_bottom_color = Color(0.01, 0.03, 0.07, 1)
ground_curve = 0.1
ground_energy_multiplier = 0.6
sun_angle_max = 40.0
@@ -26,7 +26,7 @@ background_mode = 2
sky = SubResource("SkyResource")
ambient_light_source = 3
ambient_light_sky_contribution = 1.0
ambient_light_energy = 1.0
ambient_light_energy = 1.3
reflected_light_source = 1
tonemap_mode = 2
tonemap_exposure = 1.15
@@ -48,8 +48,8 @@ glow_intensity = 0.8
glow_blend_mode = 0
glow_hdr_threshold = 1.2
fog_enabled = true
fog_light_color = Color(0.1, 0.3, 0.35, 1)
fog_light_energy = 0.52
fog_light_color = Color(0.05, 0.18, 0.29, 1)
fog_light_energy = 0.38
fog_sun_scatter = 0.15
fog_density = 0.006
fog_aerial_perspective = 0.5
@@ -57,7 +57,7 @@ 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_albedo = Color(0.5, 0.78, 0.92, 1)
volumetric_fog_anisotropy = 0.45
volumetric_fog_length = 72.0
volumetric_fog_ambient_inject = 0.5
@@ -73,11 +73,11 @@ environment = SubResource("EnvironmentUnderwater")
[node name="AmbientDirection" type="DirectionalLight3D" parent="."]
rotation_degrees = Vector3(-62, -28, 0)
light_color = Color(0.56, 0.8, 0.82, 1)
light_energy = 1.35
light_color = Color(0.5, 0.78, 0.88, 1)
light_energy = 0.9
light_angular_distance = 3.0
shadow_enabled = true
shadow_opacity = 0.7
shadow_opacity = 0.45
shadow_blur = 2.0
directional_shadow_max_distance = 160.0
directional_shadow_fade_start = 0.75