Correct foggy ocean horizon blending

This commit is contained in:
Alexander Sellite 2026-08-13 11:13:09 -04:00
parent 5ec62b8465
commit c239ca6bd5
3 changed files with 20 additions and 22 deletions

View file

@ -311,15 +311,14 @@ func _validate_environment_presentation() -> void:
assert(float( assert(float(
SaltWaterMaterial.get_shader_parameter("weather_fog_amount") SaltWaterMaterial.get_shader_parameter("weather_fog_amount")
) > 0.99) ) > 0.99)
var night_rendered_fog_color := Color( var night_rendered_fog_color := (
runtime_environment.fog_light_color.r runtime_environment.fog_light_color.srgb_to_linear()
* runtime_environment.fog_light_energy,
runtime_environment.fog_light_color.g
* runtime_environment.fog_light_energy,
runtime_environment.fog_light_color.b
* runtime_environment.fog_light_energy,
1.0,
) )
night_rendered_fog_color.r *= runtime_environment.fog_light_energy
night_rendered_fog_color.g *= runtime_environment.fog_light_energy
night_rendered_fog_color.b *= runtime_environment.fog_light_energy
night_rendered_fog_color.a = 1.0
night_rendered_fog_color = night_rendered_fog_color.linear_to_srgb()
var night_water_fog_color := ( var night_water_fog_color := (
SaltWaterMaterial.get_shader_parameter("weather_fog_color") as Color SaltWaterMaterial.get_shader_parameter("weather_fog_color") as Color
) )

View file

@ -335,15 +335,14 @@ func _validate_weather_presentation() -> void:
"weather_fog_color" "weather_fog_color"
) as Color ) as Color
) )
var rendered_fog_color := Color( var rendered_fog_color := (
runtime_environment.fog_light_color.r runtime_environment.fog_light_color.srgb_to_linear()
* runtime_environment.fog_light_energy,
runtime_environment.fog_light_color.g
* runtime_environment.fog_light_energy,
runtime_environment.fog_light_color.b
* runtime_environment.fog_light_energy,
1.0,
) )
rendered_fog_color.r *= runtime_environment.fog_light_energy
rendered_fog_color.g *= runtime_environment.fog_light_energy
rendered_fog_color.b *= runtime_environment.fog_light_energy
rendered_fog_color.a = 1.0
rendered_fog_color = rendered_fog_color.linear_to_srgb()
assert(water_fog_color.is_equal_approx(rendered_fog_color)) assert(water_fog_color.is_equal_approx(rendered_fog_color))
assert(runtime_environment.fog_depth_begin <= 4.01) assert(runtime_environment.fog_depth_begin <= 4.01)
assert(is_equal_approx(runtime_environment.fog_depth_end, 18.0)) assert(is_equal_approx(runtime_environment.fog_depth_end, 18.0))

View file

@ -441,12 +441,12 @@ func _apply_water_environment(
func _fog_render_color(fog_color: Color, fog_light_energy: float) -> Color: func _fog_render_color(fog_color: Color, fog_light_energy: float) -> Color:
return Color( var linear_fog_color := fog_color.srgb_to_linear()
fog_color.r * fog_light_energy, linear_fog_color.r *= fog_light_energy
fog_color.g * fog_light_energy, linear_fog_color.g *= fog_light_energy
fog_color.b * fog_light_energy, linear_fog_color.b *= fog_light_energy
1.0, linear_fog_color.a = 1.0
) return linear_fog_color.linear_to_srgb()
func _apply_sky_clouds(daylight: float, warmth: float) -> void: func _apply_sky_clouds(daylight: float, warmth: float) -> void: