diff options
Diffstat (limited to 'src/LivingVillage.Desktop/SceneDetail.fs')
| -rw-r--r-- | src/LivingVillage.Desktop/SceneDetail.fs | 29 |
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 四层), |
