summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop/M6Presentation.fs
diff options
context:
space:
mode:
Diffstat (limited to 'src/LivingVillage.Desktop/M6Presentation.fs')
-rw-r--r--src/LivingVillage.Desktop/M6Presentation.fs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/LivingVillage.Desktop/M6Presentation.fs b/src/LivingVillage.Desktop/M6Presentation.fs
index 90d2e65..825847a 100644
--- a/src/LivingVillage.Desktop/M6Presentation.fs
+++ b/src/LivingVillage.Desktop/M6Presentation.fs
@@ -65,6 +65,18 @@ module M6Presentation =
let goldenVeilAlpha (tick: int64) : int =
int (150.0f * transitionWarmth tick)
+ /// Cool moonlight wash applied as a premultiplied veil over the finished night scene.
+ /// Multiplicative night tint can only darken, so this additive cool layer is what makes deep
+ /// night read moon-blue. It is zero whenever the sun lights the scene (blend 0) and is
+ /// suppressed through the warm dawn/dusk windows (warmth), so it never competes with the
+ /// golden veil. Purely desktop render state; the Kernel never sees it.
+ let moonlightRgb : int * int * int = (120, 170, 235)
+
+ let moonlightVeilAlpha (tick: int64) : int =
+ let blend = lightingBlend tick
+ let warmth = transitionWarmth tick
+ int (72.0f * blend * (1.0f - warmth))
+
let private lerp (a: int) (b: int) (blend: float32) : int =
a + int (float32 (b - a) * blend)