summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-29 10:58:24 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-29 10:58:24 +0800
commit0b1330de9b8d78f398753d878f495f324617d203 (patch)
tree298710d868c5a965c4dfb94fa5db89a796ca78c0 /docs
parentd170af8485ad787cbc2a87b352d2b5cd81605b4d (diff)
downloadliving-village-0b1330de9b8d78f398753d878f495f324617d203.tar.gz
p73: 昼夜光照四时段档(清晨/正午/黄昏/夜晚)
M6Presentation 新增 periodAtTick/periodLighting 参数表(AmbientTint 乘性色调 + Veil/VeilAlpha 加性覆盖 + LanternGlow),边界与 timePeriodLabel 一致;正午为恒等档不改白平衡。DrawWorldView 并入时段色调与 effectiveLanternGlow(黄昏 0.6 起点亮、夜晚 1.0),覆盖色最后叠加。新增 P73 回归;新增 LV_P73_SHOT 同机位四帧证据 + analyze-p73(verdict=PASS);字形表补 正/午(345)。Desktop 346/346、Kernel 120/120、digest 与 p70 一致。
Diffstat (limited to 'docs')
-rw-r--r--docs/evidence/p73-analysis.txt28
-rw-r--r--docs/evidence/p73-dusk.pngbin0 -> 193559 bytes
-rw-r--r--docs/evidence/p73-morning.pngbin0 -> 188561 bytes
-rw-r--r--docs/evidence/p73-night.pngbin0 -> 185380 bytes
-rw-r--r--docs/evidence/p73-noon.pngbin0 -> 106218 bytes
-rw-r--r--docs/维护说明.md17
6 files changed, 45 insertions, 0 deletions
diff --git a/docs/evidence/p73-analysis.txt b/docs/evidence/p73-analysis.txt
new file mode 100644
index 0000000..a8a0243
--- /dev/null
+++ b/docs/evidence/p73-analysis.txt
@@ -0,0 +1,28 @@
+P73(昼夜光照层次:清晨/正午/黄昏/夜晚四档)证据分析 — 真实 Desktop xvfb 1280x720
+钩子:LV_P73_SHOT=1(同一桥头光源机位,6/12/18/22 各一帧,画面差异只来自光照)
+路径:tick → periodAtTick → periodLighting(环境色调/覆盖色/VeilAlpha/灯光) + 连续 blend/warmth veils
+
+p73-morning: hour=6.0 tick=1296000 period=清晨 blend=0.2 lantern=0.32 tint=(255, 229, 212) veil=20
+p73-noon: hour=12.0 tick=2592000 period=正午 blend=0.0 lantern=0.0 tint=(255, 255, 255) veil=0
+p73-dusk: hour=18.0 tick=3888000 period=黄昏 blend=0.0 lantern=0.6 tint=(255, 255, 255) veil=52
+p73-night: hour=22.0 tick=4752000 period=夜晚 blend=1.0 lantern=1.0 tint=(118, 136, 184) veil=26
+
+
+p73-morning.png: size=1280x720 brightness=107.9 R=123.0 G=118.7 B=81.8 warmth(R-B)=+41.2 std=34.1 dark_block=0
+p73-noon.png: size=1280x720 brightness=86.4 R=71.0 G=107.8 B=80.4 warmth(R-B)=-9.5 std=36.5 dark_block=0
+p73-dusk.png: size=1280x720 brightness=97.8 R=113.8 G=111.5 B=68.0 warmth(R-B)=+45.8 std=39.2 dark_block=0
+p73-night.png: size=1280x720 brightness=89.8 R=65.7 G=90.1 B=113.6 warmth(R-B)=-47.9 std=40.2 dark_block=0
+
+diff p73-morning vs p73-noon: differing_pixels=905809
+diff p73-morning vs p73-dusk: differing_pixels=905399
+diff p73-morning vs p73-night: differing_pixels=921390
+diff p73-noon vs p73-dusk: differing_pixels=905696
+diff p73-noon vs p73-night: differing_pixels=921368
+diff p73-dusk vs p73-night: differing_pixels=921390
+
+brightness order: morning(107.9) > dusk(97.8) > night(89.8) > noon(86.4)
+warmth order: dusk(+45.8) > morning(+41.2) > noon(-9.5) > night(-47.9)
+
+verdict=PASS
+ four periods have distinct parameters; noon identity, dusk lamps on, night lamps full;
+ real frames render 1280x720, differ pairwise, night darker / noon brighter / dusk warmer.
diff --git a/docs/evidence/p73-dusk.png b/docs/evidence/p73-dusk.png
new file mode 100644
index 0000000..1ad7fa4
--- /dev/null
+++ b/docs/evidence/p73-dusk.png
Binary files differ
diff --git a/docs/evidence/p73-morning.png b/docs/evidence/p73-morning.png
new file mode 100644
index 0000000..1126d8b
--- /dev/null
+++ b/docs/evidence/p73-morning.png
Binary files differ
diff --git a/docs/evidence/p73-night.png b/docs/evidence/p73-night.png
new file mode 100644
index 0000000..d7da3d8
--- /dev/null
+++ b/docs/evidence/p73-night.png
Binary files differ
diff --git a/docs/evidence/p73-noon.png b/docs/evidence/p73-noon.png
new file mode 100644
index 0000000..2458546
--- /dev/null
+++ b/docs/evidence/p73-noon.png
Binary files differ
diff --git a/docs/维护说明.md b/docs/维护说明.md
index 5fa87a4..9d27dd1 100644
--- a/docs/维护说明.md
+++ b/docs/维护说明.md
@@ -91,6 +91,23 @@ final_digest 固定 953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F
`CharacterFeetSitOnTheTileGroundLine`;图像级 `scripts/check-no-white-blocks.py`
对夜晚录帧断言不存在 ≥64×64、每通道 ≥250、alpha ≥250 的方块(P13 旧帧 42/69 命中,修复后 0 命中)。
+## 昼夜光照档(P73)
+
+- 既有 `lightingBlend`(0 白天→1 夜晚,dawn 4.0–6.5 / dusk 20.0–22.0)与 `transitionWarmth`
+ (晨曦/黄昏三角暖色峰)是**连续曲线**;P73 在其上再叠一层**四时段档**,填补 17:00–19:15
+ 原本与正午无差的黄昏空档。两者都由 `world.Tick` 纯函数导出,Kernel 不参与。
+- `M6Presentation.periodAtTick`:边界与 `timePeriodLabel` 完全一致(<5 夜晚、<8 清晨、
+ <17 正午、<21 黄昏、否则夜晚)→ `Morning | Noon | Dusk | Night`。
+- `M6Presentation.periodLighting`:纯数据参数表,每档给 `AmbientTint`(乘性环境色调)、
+ `Veil`/`VeilAlpha`(加性覆盖色,经 `VillageArt.premultiply`)、`LanternGlow`(灯光强度)。
+ **正午档为恒等**(白 tint / `VeilAlpha=0` / 灯光 0),故既有正午白平衡不变。
+- 渲染接线(`Game.fs` `DrawWorldView`):`worldTint = multiplyTint profile.WorldTint period.AmbientTint`;
+ `lanternGlow = effectiveLanternGlow tick`(连续曲线与时段档取大,黄昏 0.6 起灯笼点亮、夜晚 1.0);
+ 时段覆盖色在 golden/moon veil 之后最后叠上。HUD/室内界未改。
+- **回归**:`P73LightingTierTests`(四档两两不同、正午恒等、黄昏灯亮、夜晚灯满、时段边界与
+ `timePeriodLabel` 一致)。**证据**:`scripts/analyze-p73.py` 对 `LV_P73_SHOT=1`(同一桥头机位
+ 6/12/18/22 四帧)断言参数一致 + 亮度/暖度可辨 + 两两 pixel diff,落 `docs/evidence/p73-*`。
+
## 性能基线命令
```bash