summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop/Game.fs
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-29 16:17:02 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-29 16:17:02 +0800
commit012c66f7eef55e7ef98a3c09bba419b1b17c05ca (patch)
treeeaa3a0230e848d40d66418b3cfb29e898f7784ba /src/LivingVillage.Desktop/Game.fs
parentc4917adfd5dec391196a399aa53d57c680e462f4 (diff)
downloadliving-village-012c66f7eef55e7ef98a3c09bba419b1b17c05ca.tar.gz
p79: 夜帧炊烟增强与光晕去叠
- 炊烟:夜帧烟柱4段向上堆叠(整格32px, alpha 180+75)+暖色外发光(r30)+中性柔光团(r12); 烟柱强光像素(夜-昼贡献>=80) 181->1171 (x6.5),峰值112->173;白天帧逐像素不变。 - 光晕去叠:VillageArt.haloRingLayers 每光源<=2层(内芯+空心外环),芯环间确定暗隙,半径4->3 tile, 峰值150->118;光晕重叠面积(夜-昼贡献>=60)中央区 15184->9633 (-36.6%),全屏 15477->9926 (-35.9%)。 - 回归 P79NightPolishTests(3);analyze-p78.py 复跑仍 PASS;正午帧与 P78 完全一致=白天零回归。 - Desktop 367/367, Kernel 120/120, digest 953775FA...F7F6C 不变
Diffstat (limited to 'src/LivingVillage.Desktop/Game.fs')
-rw-r--r--src/LivingVillage.Desktop/Game.fs22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs
index a83f04c..4e2a741 100644
--- a/src/LivingVillage.Desktop/Game.fs
+++ b/src/LivingVillage.Desktop/Game.fs
@@ -3346,18 +3346,10 @@ type LivingVillageGame() as this =
let tileX x = x * Sim.tilePixels - int camera.X
let tileY y = y * Sim.tilePixels - int camera.Y
match riverscapeMap with
- | Some map ->
- // P39:cc0 模式下把主路石灯笼并入夜光;fallback 保持原灯光源。
- VillageArt.drawNightGlows
- spriteBatch
- pixel
- map
- (4 * Sim.tilePixels)
- (int (150.0f * glow))
- tileX
- tileY
- Sim.tilePixels
- artTextures.Cc0TileAtlas.IsSome
+ | Some _ ->
+ // P79:生成器世界的夜光改到 veil 之后的去叠层(`SceneDetailRender.drawNightHalos`),
+ // 每光源 ≤2 层、层间暗隙、半径 4→3 tile,不再在此铺一大团叠加光。
+ ()
| None ->
for prop in renderPlan.Props do
match prop.Kind with
@@ -3421,11 +3413,11 @@ type LivingVillageGame() as this =
let v = period.Veil
spriteBatch.Draw(pixel, Rectangle(0, 0, viewport.Width, viewport.Height), VillageArt.premultiply (int v.R) (int v.G) (int v.B) period.VeilAlpha)
- // P78:夜帧加成层(水面逐格微光斑 + 桥头灯柱窄光晕)。画在全部 veil 之后,
- // 故不被夜色乘暗、暗部层次仍可读;白天 lanternGlow=0,本层为空、白天帧零回归。
+ // P78/P79:夜帧加成层(水面逐格微光斑 + 桥头灯柱窄光晕 + 去叠灯群光晕 + 炊烟增强)。
+ // 画在全部 veil 之后,故不被夜色乘暗、暗部层次仍可读;白天 lanternGlow=0,本层为空、白天帧零回归。
match riverscapeMap with
| Some map when lanternGlow > 0.0f ->
- SceneDetailRender.drawNight spriteBatch pixel camera map world.Tick lanternGlow
+ SceneDetailRender.drawNight spriteBatch artTextures pixel camera map world.Tick lanternGlow
| _ -> ()
spriteBatch.End()