summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop/SceneDetail.fs
diff options
context:
space:
mode:
Diffstat (limited to 'src/LivingVillage.Desktop/SceneDetail.fs')
-rw-r--r--src/LivingVillage.Desktop/SceneDetail.fs29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/LivingVillage.Desktop/SceneDetail.fs b/src/LivingVillage.Desktop/SceneDetail.fs
index 54665ac..0e61726 100644
--- a/src/LivingVillage.Desktop/SceneDetail.fs
+++ b/src/LivingVillage.Desktop/SceneDetail.fs
@@ -198,10 +198,10 @@ module SceneDetail =
let night = max 0.0f (min 1.0f nightStrength)
int (78.0f + 104.0f * night)
- /// 炊烟绘制边长:夜帧略放大,增强存在感。
+ /// 炊烟绘制边长:夜帧放大到整格,增强存在感。
let smokeCellSize (nightStrength: float32) : int =
let night = max 0.0f (min 1.0f nightStrength)
- int (20.0f + 8.0f * night)
+ int (20.0f + 12.0f * night)
// ---------------- P78 桥头灯柱近圈光晕 ----------------
@@ -212,6 +212,31 @@ module SceneDetail =
/// 窄光晕半径(tile):固定 1,只围灯柱一圈,不铺满整条河。
let bridgeHaloRadiusTiles = 1
+ // ---------------- P79 夜帧炊烟增强(烟柱 + 外发光) ----------------
+
+ /// 夜帧烟柱分段数:向上堆叠成可辨烟柱。
+ let nightSmokeSegments = 4
+ /// 每段抬升像素。
+ let nightSmokeSegmentLift = 10
+ /// 夜帧烟柱 alpha:显著高于白天 underlay,裸眼可从屋顶看到每一缕。
+ let nightSmokeAlphaAt (nightStrength: float32) : int =
+ int (180.0f + 75.0f * max 0.0f (min 1.0f nightStrength))
+ /// 夜帧外发光峰值 alpha:提亮烟柱周边形成外发光。
+ let nightSmokeGlowPeakAt (nightStrength: float32) : int =
+ int (90.0f + 110.0f * max 0.0f (min 1.0f nightStrength))
+ /// 夜帧外发光半径(像素)。
+ let nightSmokeGlowRadius = 30
+
+ // ---------------- P79 夜景光晕去叠 ----------------
+
+ /// 收紧后的单个光源光晕半径(tile):4 → 3。
+ let nightHaloRadiusTiles = 3
+ /// 每个光源最多可见层数(内芯 + 外环),层间留暗隙。
+ let nightHaloVisualLayers = 2
+ /// 收紧半径后的峰值 alpha(略降,避免叠加成一整团)。
+ let nightHaloPeakAlphaAt (nightStrength: float32) : int =
+ int (118.0f * max 0.0f (min 1.0f nightStrength))
+
/// ---------------- 近景楼层层错落(屏幕空间前景层) ----------------
/// 前景层屋顶分段:等宽 tile 分段、高度按确定性函数错落(0/8/16/24 px 四层),