summaryrefslogtreecommitdiff
path: root/docs/维护说明.md
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-28 08:19:00 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-28 08:19:00 +0800
commitdfe4c72ea1ce0083b906c0b473d490b79cf2b2f1 (patch)
treee50fc2087433d33292cc973db88e3b4d22c3989b /docs/维护说明.md
parent96a29587b1f3c4e729eeb9db9d9b55258e216e3d (diff)
downloadliving-village-dfe4c72ea1ce0083b906c0b473d490b79cf2b2f1.tar.gz
docs: P32 证据清单(夜间白块修复运行时截图)
- 补拍 P14 修复后夜间真实运行时帧并入 docs/evidence/(被 .gitignore 命中,git add -f) - 生成器世界 512x384 seed4242 夜/昼整帧 2048x1536 + 桥头河面 2x 特写(灯笼光晕+水面) - 样例村庄真实运行夜/昼整帧 1280x720 + 特写 2x(民居/水面/炊烟) - 维护说明新增「证据清单(P32)」小节与复现命令,更新 docs/evidence 入库说明 - check-no-white-blocks.py 7 帧 0 命中
Diffstat (limited to 'docs/维护说明.md')
-rw-r--r--docs/维护说明.md55
1 files changed, 53 insertions, 2 deletions
diff --git a/docs/维护说明.md b/docs/维护说明.md
index bea7f8b..c8047c8 100644
--- a/docs/维护说明.md
+++ b/docs/维护说明.md
@@ -928,8 +928,9 @@ python3 scripts/check-no-white-blocks.py evidence/night-run
## 取证快照位置(近期)
-- `docs/evidence/`(仓库内但被 .gitignore `evidence/` 忽略、未入库:P31 四职业 stage2
- 截图 `p31-story-{farmer,fisher,peddler,scholar}-stage2.png`)
+- `docs/evidence/`(P31 四职业 stage2 截图 `p31-story-{farmer,fisher,peddler,scholar}-stage2.png`;
+ P32 夜间白块修复运行时截图 `p32-*.png`。该目录被 .gitignore 的 `evidence/` 规则命中,
+ UI/文档类证据用 `git add -f` 显式入库,其余大批量工作区帧仍不入 git)
- `/tmp/lv-p2-ui/`、`/tmp/lv-p3-fixes/`(标题/键位/P5 提示与修)
- `/tmp/lv-p6-art/`(昼夜光照/四帧行走/标题入场)
- `/tmp/lv-p7-map/`(512×384 大世界巡游帧 + 夜灯对照)
@@ -982,3 +983,53 @@ python3 scripts/check-no-white-blocks.py evidence/night-run
`p30-field-cluster-4x-{day,night}.png` 512x256 田块+农舍+树丛 4px/tile、
`p30-roadserp-4x-day.png` 512x256 主路逐点弯曲 4px/tile;工作区 `art/` 不入 git)
- `artifacts/perf-independent/<TS>/`(digest 3 联测回读)
+
+## 证据清单(P32 夜间白块修复运行时截图)
+
+P32 补拍 P14(预乘 alpha 灯笼光晕 / 水面相位 / 炊烟 late pass)修复后的真实运行时夜间帧,
+落库 `docs/evidence/`。该目录被 .gitignore 的 `evidence/` 规则命中,故 P32 这批 UI/文档证据用
+`git add -f` 显式入库。
+
+复现命令(Release 构建后;`/tmp` 请用沙箱允许的路径):
+
+```bash
+DLL=src/LivingVillage.Desktop/bin/Release/net8.0/LivingVillage.Desktop.dll
+
+# ① 生成器世界整帧:512x384 tile、seed 4242,2048x1536 = 4px/tile;night 走 23:30
+for t in day night; do
+ extra=""; [ "$t" = night ] && extra="LV_MAPGEN_NIGHT=1"
+ timeout 200 xvfb-run -a -s "-screen 0 1280x720x24" env LV_MAPGEN_SHOT=1 \
+ LV_MAPGEN_WIDTH=512 LV_MAPGEN_HEIGHT=384 LV_MAPGEN_SEED=4242 \
+ LV_MAPGEN_FIT_WIDTH=2048 LV_MAPGEN_FIT_HEIGHT=1536 $extra \
+ LV_RECORD_DIR=/tmp/opencode/lv-p32-evidence/$t dotnet "$DLL"
+done
+
+# ② 样例村庄真实运行帧(1280x720;每 10 帧存 1)
+for h in 23.5 12.0; do
+ tag=night; [ "$h" = 12.0 ] && tag=day
+ timeout 25 xvfb-run -a -s "-screen 0 1280x720x24" env LV_AUTOPLAY_SAMPLE=1 \
+ LV_AUTOPLAY_RECORD=1 LV_AUTOPLAY_START_HOUR=$h LV_RECORD_EVERY=10 \
+ LV_RECORD_NAME=p32-$tag- LV_RECORD_DIR=/tmp/opencode/lv-p32-evidence/scene-$tag \
+ dotnet "$DLL"
+done
+
+# ③ 夜间白块回归(本单 7 帧 + 生成器夜帧全集,0 命中)
+python3 scripts/check-no-white-blocks.py docs/evidence/p32-*.png
+python3 scripts/check-no-white-blocks.py /tmp/opencode/lv-p32-evidence/night
+```
+
+入库文件(`docs/evidence/`):
+
+| 文件 | 内容 |
+| --- | --- |
+| `p32-night-map-512x384-seed4242.png` | 生成器世界夜间整帧 2048x1536(23:30 `WorldTint` + 月光 veil + 桥头/民居径向暖光) |
+| `p32-day-map-512x384-seed4242.png` | 同上白天对照帧 |
+| `p32-night-map-bridge-2x.png` | 桥 (249,203) + 河面区域 2x NEAREST:暖色径向光晕(R−B 峰值 +47、暖光像素 9884)叠在蓝色水面上 |
+| `p32-night-village.png` | 样例村庄真实运行夜间整帧 1280x720 |
+| `p32-day-village.png` | 样例村庄真实运行白天整帧 1280x720 |
+| `p32-night-village-closeup-2x.png` | 村庄灯笼/水面区域 2x NEAREST(夜光在月光 veil 下偏柔,无白块) |
+| `p32-day-village-closeup-2x.png` | 村庄民居/水面/炊烟区域 2x NEAREST(炊烟烟柱在屋脊上方,见 P14 late pass) |
+
+说明:`DrawMapFitted` 生成器渲染路径不绘制炊烟(炊烟只在样例村庄 `VillageArt.drawWorld` 的
+late pass),故「灯笼光晕 + 水面」以生成器夜帧为准,「炊烟」见样例村庄昼间特写。所有帧
+`check-no-white-blocks.py` 0 命中(无 ≥64x64 不透明纯白块)。