add moon
This commit is contained in:
@@ -21,6 +21,10 @@ signal preset_changed(preset: SkyPreset)
|
||||
@export var sun_light: DirectionalLight3D
|
||||
@export var moon_light: DirectionalLight3D
|
||||
|
||||
@export_group("Moon Visual")
|
||||
@export var moon_size: float = 0.045
|
||||
@export var moon_height: float = 45.0
|
||||
|
||||
@export_group("Global Settings")
|
||||
@export var auto_create_controllers: bool = true
|
||||
@export var deterministic_seed: int = 0:
|
||||
@@ -209,25 +213,17 @@ func _sync_sun_moon() -> void:
|
||||
var ambient_color: Color
|
||||
var ambient_energy: float
|
||||
|
||||
if _current_config:
|
||||
sun_color = _current_config.sun_color
|
||||
sun_energy = _current_config.sun_intensity
|
||||
moon_color = _current_config.moon_color
|
||||
moon_energy = _current_config.moon_intensity
|
||||
ambient_color = _current_config.ambient_color
|
||||
ambient_energy = _current_config.ambient_intensity
|
||||
else:
|
||||
sun_color = day_night_controller.get_sun_color()
|
||||
sun_energy = day_night_controller.get_sun_intensity()
|
||||
moon_color = day_night_controller.get_moon_color()
|
||||
moon_energy = day_night_controller.get_moon_intensity()
|
||||
ambient_color = day_night_controller.get_ambient_color()
|
||||
ambient_energy = day_night_controller.get_ambient_intensity()
|
||||
if weather_controller:
|
||||
var wp := weather_controller.get_current_profile()
|
||||
if wp:
|
||||
ambient_color *= wp.ambient_color_multiplier
|
||||
ambient_energy *= wp.ambient_intensity_multiplier
|
||||
sun_color = day_night_controller.get_sun_color()
|
||||
sun_energy = day_night_controller.get_sun_intensity()
|
||||
moon_color = day_night_controller.get_moon_color()
|
||||
moon_energy = day_night_controller.get_moon_intensity()
|
||||
ambient_color = day_night_controller.get_ambient_color()
|
||||
ambient_energy = day_night_controller.get_ambient_intensity()
|
||||
if weather_controller:
|
||||
var wp := weather_controller.get_current_profile()
|
||||
if wp:
|
||||
ambient_color *= wp.ambient_color_multiplier
|
||||
ambient_energy *= wp.ambient_intensity_multiplier
|
||||
|
||||
if sun_light:
|
||||
sun_light.look_at(global_position - sun_dir, Vector3.UP)
|
||||
@@ -341,6 +337,19 @@ func _sync_post_process() -> void:
|
||||
day_night_controller.get_sky_horizon_color(),
|
||||
day_night_controller.get_sky_bottom_color()
|
||||
)
|
||||
|
||||
var moon_energy := day_night_controller.get_moon_intensity()
|
||||
var visual_intensity := moon_energy * 4.0
|
||||
var mh: float = moon_height if moon_height > 0.0 else 45.0
|
||||
var ms: float = moon_size if moon_size > 0.0 else 0.045
|
||||
var moon_angle := (day_night_controller.time_of_day + 0.25) * TAU
|
||||
var elevation := sin(moon_angle) * deg_to_rad(mh)
|
||||
var moon_visual_dir := Vector3(
|
||||
cos(moon_angle + PI),
|
||||
sin(elevation) * 2.0,
|
||||
sin(moon_angle) * 0.3
|
||||
).normalized()
|
||||
post_process_controller.set_moon(moon_visual_dir, Color.WHITE, visual_intensity, ms)
|
||||
|
||||
|
||||
func _apply_preset_assets(preset: SkyPreset) -> void:
|
||||
|
||||
Reference in New Issue
Block a user