summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-29 05:21:49 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-29 05:21:49 +0800
commit91a3b3016a75e7a31b107d2c26a2d54ac6c1014a (patch)
treebd6d7da894e8d477f6feb50db7fa24bb8daa7b96 /docs
parent7b7ef3f4f6ba814605c2b10f55e7be8afe4ebcb3 (diff)
downloadliving-village-91a3b3016a75e7a31b107d2c26a2d54ac6c1014a.tar.gz
p62: G2 补齐民居内景与村庄全貌取证帧(真实 Interact 进门 + 真实相机俯瞰)
Diffstat (limited to 'docs')
-rw-r--r--docs/evidence/p62-analysis.txt16
-rw-r--r--docs/evidence/p62-interior.pngbin0 -> 72474 bytes
-rw-r--r--docs/evidence/p62-overview.pngbin0 -> 104779 bytes
-rw-r--r--docs/evidence/p62-run-log.txt11
-rw-r--r--docs/evidence/p62-verification.txt47
5 files changed, 74 insertions, 0 deletions
diff --git a/docs/evidence/p62-analysis.txt b/docs/evidence/p62-analysis.txt
new file mode 100644
index 0000000..73647af
--- /dev/null
+++ b/docs/evidence/p62-analysis.txt
@@ -0,0 +1,16 @@
+P62(G2 整改)证据分析 — 真实 Desktop 实跑 xvfb 1280x720
+钩子:LV_P62_SHOT=1 LV_LEGACY_MAP=1(可玩样板地图),2 帧:p62-overview / p62-interior
+内景路径:真实 Sim.step 走向门口 → 真实 M5Command.Interact 进门(非合成相机)
+
+p62-overview.png 1280x720 mean=85.2 std=31.8 max_dark_block=0 max_white_block=15
+p62-interior.png 1280x720 mean=118.8 std=54.1 max_dark_block=0 max_white_block=52
+
+log: p62-shot=p62-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside
+log: p62-shot=p62-interior tick=2592020 avatar=(1008,741) camera=(384,344) home=Inside (HomeId 1)
+
+overview vs interior mean_abs_diff=51.4
+
+缺字空白位 total=0(两帧中文经 CjkGlyphAtlas 绘制;P61 已证 atlas 覆盖 Desktop 全部用户可见中文,P61GlyphCoverageTests 绿)
+黑块(24x24 fully opaque <= 8) max=0
+
+verdict: PASS(黑块=0;白块=0;俯瞰=真实相机全貌;内景=真实 Interact 进入)
diff --git a/docs/evidence/p62-interior.png b/docs/evidence/p62-interior.png
new file mode 100644
index 0000000..f5c8573
--- /dev/null
+++ b/docs/evidence/p62-interior.png
Binary files differ
diff --git a/docs/evidence/p62-overview.png b/docs/evidence/p62-overview.png
new file mode 100644
index 0000000..daca107
--- /dev/null
+++ b/docs/evidence/p62-overview.png
Binary files differ
diff --git a/docs/evidence/p62-run-log.txt b/docs/evidence/p62-run-log.txt
new file mode 100644
index 0000000..19aa005
--- /dev/null
+++ b/docs/evidence/p62-run-log.txt
@@ -0,0 +1,11 @@
+world-mode=legacy-64x48 bounds=64x48
+mode=keyboard seed=42
+controls=WASD move E interact 1-6 choose Q observe Tab needs C chronicle L relations P pause F1/F2/F3 speed F6 save F7 load Esc close/exit
+fps=61.0 tick=0 pos=(1008,816)
+fps=60.0 tick=0 pos=(1008,816)
+splash=done frame=150
+menu=occupation-select
+new-game=ok seed=42 npcs=30 occupation=农夫 tick=0
+p62-shot=p62-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside
+p62-shot=p62-interior tick=2592020 avatar=(1008,741) camera=(384,344) home=Inside (HomeId 1)
+p62-shot=done
diff --git a/docs/evidence/p62-verification.txt b/docs/evidence/p62-verification.txt
new file mode 100644
index 0000000..3c7f571
--- /dev/null
+++ b/docs/evidence/p62-verification.txt
@@ -0,0 +1,47 @@
+P62(G2 整改:民居内景与村庄全貌取证帧)验证记录
+commit 前置:HEAD=fd40d78(P61)
+
+变更
+- src/LivingVillage.Desktop/Game.fs:新增 LV_P62_SHOT=1 钩子(+~70 行,无删除)
+ · step0 真实相机俯瞰:setHour 12:00,角色置于样板村西侧世界 tile(31,21),CenterCamera 截 p62-overview
+ · step1 真实进屋:沿真实 Sim.step 向村舍门 tile(31,23) 移动,抵达后真实 M5Command.Interact
+ → HomeMode=Inside(HomeId 1) 截 p62-interior(非合成相机、非拼接)
+- src/LivingVillage.Desktop.Tests/P62EvidenceTests.fs(新,+2 测试)
+ · InteriorEntryViaRealInteractReachesInsideMode:门口真实 Interact → Inside(HomeId 1), status="home entered"
+ · OverviewViewportContainsWholeSampleVillage:俯瞰点居中后样板村落全部元素+门口均落 1280x720 视口内(钉住"全貌")
+- src/LivingVillage.Desktop.Tests/LivingVillage.Desktop.Tests.fsproj:加入 P62EvidenceTests.fs
+- scripts/analyze-p62.py(新):读真实 run log + 两帧,断言非空/非近白块/非黑块/两帧不同/内景 Inside
+
+构建
+dotnet build LivingVillage.sln -c Release → 已成功生成,0 错误,1 警告(P40ArtTests.fs(38,28) FS0760,既有)
+
+测试
+dotnet test LivingVillage.sln -c Release --no-build
+- Desktop 310/310(P61 308 → +2)
+- Kernel 119/119
+
+证据实跑(真实 Desktop + xvfb 1280x720)
+LV_P62_SHOT=1 LV_LEGACY_MAP=1 LV_RECORD_DIR=/tmp/opencode/lv-p62 \
+ xvfb-run -a -s "-screen 0 1280x720x24" dotnet LivingVillage.Desktop.dll(exit=0)
+log:
+ p62-shot=p62-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside
+ p62-shot=p62-interior tick=2592020 avatar=(1008,741) camera=(384,344) home=Inside (HomeId 1)
+(角色由 (1008,688) 真实走到 (1008,741) 后 Interact 进门 → tick 前进 20)
+
+scripts/analyze-p62.py /tmp/opencode/lv-p62 docs/evidence/p62-analysis.txt → verdict: PASS
+ p62-overview.png 1280x720 mean=85.2 std=31.8 max_dark_block=0 max_white_block=15
+ p62-interior.png 1280x720 mean=118.8 std=54.1 max_dark_block=0 max_white_block=52
+ overview vs interior mean_abs_diff=51.4
+ 缺字空白位 total=0(P61 atlas 覆盖全部 Desktop 用户可见中文); 黑块=0
+scripts/check-no-white-blocks.py p62-overview.png p62-interior.png → checked=2 failures=0 OK
+
+确定性
+LivingVillage.Headless.dll --performance-baseline ×3 → final_digest=
+953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C ×3,performance_determinism=PASS
+
+边界
+- 未改 src/LivingVillage.Kernel/Sim.fs / Sim.step;未动 Kernel/Sim 地图与 seed 口径
+- 未引外部素材;HUD/对话框未结构重排(仅新增钩子,全部新增行)
+- 内景取证在可玩样板地图(LV_LEGACY_MAP=1,即 SampleScript 真实进门所用的样板场景);
+ 256x192 生成器世界里的"村民居可进入"未在本切片取证(超出 G2 范围,留待后续)
+- 图像逐帧视觉复核仍受本写入模型不支持图像输入限制(见 P60 G3),需 vision 能力方复核