From 4971a2ada6db9a37807bf46a29dbea3d9edbf06a Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Tue, 29 Sep 2026 05:42:36 +0800 Subject: p64: A3 样板三处视觉雕琢(俯瞰上半补种/桥栏杆与护岸石/内景家具)+ 证据 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/evidence/p64-analysis.txt | 24 +++++++++++++++ docs/evidence/p64-bridge.png | Bin 0 -> 111350 bytes docs/evidence/p64-interior.png | Bin 0 -> 73380 bytes docs/evidence/p64-overview.png | Bin 0 -> 110787 bytes docs/evidence/p64-run-log.txt | 14 +++++++++ docs/evidence/p64-verification.txt | 61 +++++++++++++++++++++++++++++++++++++ 6 files changed, 99 insertions(+) create mode 100644 docs/evidence/p64-analysis.txt create mode 100644 docs/evidence/p64-bridge.png create mode 100644 docs/evidence/p64-interior.png create mode 100644 docs/evidence/p64-overview.png create mode 100644 docs/evidence/p64-run-log.txt create mode 100644 docs/evidence/p64-verification.txt (limited to 'docs') diff --git a/docs/evidence/p64-analysis.txt b/docs/evidence/p64-analysis.txt new file mode 100644 index 0000000..e23e475 --- /dev/null +++ b/docs/evidence/p64-analysis.txt @@ -0,0 +1,24 @@ +P64(A3 成熟度)证据分析 — 真实 Desktop 实跑 xvfb 1280x720 +钩子:LV_P64_SHOT=1 LV_LEGACY_MAP=1(可玩样板地图),3 帧:p64-overview / p64-bridge / p64-interior +内景路径:真实 Sim.step 走向门口 → 真实 Interact 进门;桥位置/通行不变,仅增强可读性 + +plan: upper_band_props=11 upper_band_kinds=4 bridge_props=1 bridge_foot_tiles=3 bridge_abutments=4 interior_elements=8 + +p64-overview.png 1280x720 mean=86.3 std=33.2 max_dark_block=0 max_white_block=15 +p64-bridge.png 1280x720 mean=86.0 std=33.0 max_dark_block=0 max_white_block=15 +p64-interior.png 1280x720 mean=118.7 std=54.1 max_dark_block=0 max_white_block=52 + +overview upper-band non-background ratio (y 120..360) = 0.1812 (P62 基线 0.1030) +bridge region wood-pixel ratio (x 560..720, y 360..500) = 9604/22400 = 0.4288 + +log: p64-shot=p64-bridge tick=2592000 avatar=(1008,912) camera=(384,568) home=Outside +log: p64-shot=p64-interior tick=2592056 avatar=(1008,763) camera=(384,568) home=Inside (HomeId 1) +log: p64-shot=p64-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside + +p64-overview vs p64-bridge mean_abs_diff=12.5 +p64-overview vs p64-interior mean_abs_diff=51.0 +p64-bridge vs p64-interior mean_abs_diff=51.0 + +缺字空白位 total=0(三帧仅中文经 CjkGlyphAtlas 绘制;P61 覆盖测试绿) + +verdict: PASS diff --git a/docs/evidence/p64-bridge.png b/docs/evidence/p64-bridge.png new file mode 100644 index 0000000..5ce6060 Binary files /dev/null and b/docs/evidence/p64-bridge.png differ diff --git a/docs/evidence/p64-interior.png b/docs/evidence/p64-interior.png new file mode 100644 index 0000000..8806462 Binary files /dev/null and b/docs/evidence/p64-interior.png differ diff --git a/docs/evidence/p64-overview.png b/docs/evidence/p64-overview.png new file mode 100644 index 0000000..775bcb6 Binary files /dev/null and b/docs/evidence/p64-overview.png differ diff --git a/docs/evidence/p64-run-log.txt b/docs/evidence/p64-run-log.txt new file mode 100644 index 0000000..0d9529a --- /dev/null +++ b/docs/evidence/p64-run-log.txt @@ -0,0 +1,14 @@ +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 +p64-plan upper_band_props=11 upper_band_kinds=4 bridge_props=1 bridge_foot_tiles=3 bridge_abutments=4 interior_elements=8 +p64-shot=p64-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside +p64-shot=p64-bridge tick=2592000 avatar=(1008,912) camera=(384,568) home=Outside +fps=60.0 tick=2592015 pos=(1008,872) +p64-shot=p64-interior tick=2592056 avatar=(1008,763) camera=(384,568) home=Inside (HomeId 1) +p64-shot=done diff --git a/docs/evidence/p64-verification.txt b/docs/evidence/p64-verification.txt new file mode 100644 index 0000000..690ea31 --- /dev/null +++ b/docs/evidence/p64-verification.txt @@ -0,0 +1,61 @@ +P64(A3 成熟度:样板三处视觉缺口)验证记录 +commit 前置:HEAD=128164d(docs tick) + +变更(仅限现有江南样板,不扩展全村) +1. 好处:村庄俯瞰上半部空旷 + - `VillageArt.sampleRenderPlan` 在 local y0..6 / x0..19 补种(复用既有 RenderPropKind 与低饱和配色): + 4 菜畦(2格) + 2 竹丛(3格) + 2 灌木 + 2 花丛,并铺北侧田埂石径 x0..19 y0。 + - 无新增几何占位:全部走既有 GardenSprite/BambooSprite/ShrubSprite/FlowerSprite 与 StonePath。 +2. 桥梁可读性 + - `scripts/make-jiangnan-art.py` 重绘 slot5:栈板桥面 + 两侧通长木栏杆 + 望柱 + 石缘(单格 32px,尺寸不变)。 + - `VillageArt.drawBridge` 在桥两侧水线补 4 块护岸石(`bridgeAbutmentOffsets`,仅江南图集;cc0 不变); + 桥位置与通行逻辑零改动。 +3. 民居内景下半家具 + - `InteriorElementKind` 增 Chair/Stool/BedFoot/Teapot;图集在 392x96 自由区新增 4 个绘制单元, + `interiorSourceRectangle`/`elementDestination` 同步;`sampleRenderPlan.Interior` 4 → 8 件。 + - 进门流程与 HomeMode 语义未改(内部元素纯绘制)。 + +改动文件 +- scripts/make-jiangnan-art.py(桥 slot5 + 内景 4 家具单元) +- src/LivingVillage.Desktop/Assets/jiangnan-world.png, jiangnan-interior.png(脚本重生成,尺寸不变) +- src/LivingVillage.Desktop/VillageArt.fs(类型/源矩形/落位/补种/护岸石/采样) +- src/LivingVillage.Desktop/Game.fs(新增 LV_P64_SHOT 钩子,+~100 行,无删除) +- src/LivingVillage.Desktop.Tests/P64EvidenceTests.fs(新,+3 测试)+ fsproj +- src/LivingVillage.Desktop.Tests/PrototypeTests.fs(内容计数更新:内景元素 4→8;footprint 37→55) +- scripts/analyze-p64.py(新) + +构建 +dotnet build LivingVillage.sln -c Release → 已成功生成,0 错误,1 警告(P40ArtTests.fs(38,28) FS0760,既有) + +测试 +dotnet test LivingVillage.sln -c Release --no-build +- Desktop 313/313(310 → +3:P64EvidenceTests) +- Kernel 119/119 + +证据实跑(真实 Desktop + xvfb 1280x720) +LV_P64_SHOT=1 LV_LEGACY_MAP=1 xvfb-run -a -s "-screen 0 1280x720x24"(exit=0) +log: + p64-plan upper_band_props=11 upper_band_kinds=4 bridge_props=1 bridge_foot_tiles=3 bridge_abutments=4 interior_elements=8 + p64-shot=p64-overview tick=2592000 avatar=(1008,688) camera=(384,344) home=Outside + p64-shot=p64-bridge tick=2592000 avatar=(1008,912) camera=(384,568) home=Outside + p64-shot=p64-interior tick=2592056 avatar=(1008,763) camera=(384,568) home=Inside (HomeId 1) +(内景为真实 Sim.step 向门口移动后真实 Interact 进门,tick 前进 56) + +scripts/analyze-p64.py /tmp/opencode/lv-p64 docs/evidence/p64-analysis.txt → verdict: PASS + p64-overview.png 1280x720 mean=86.3 std=33.2 黑块=0 白块=0 + p64-bridge.png 1280x720 mean=86.0 std=33.0 黑块=0 白块=0 + p64-interior.png 1280x720 mean=118.7 std=54.1 黑块=0 白块=0 + 俯瞰上半部内容密度(y120..360 非背景占比)= 0.1812,P62 同带基线 0.1030(+76%) + 桥区域木色像素占比(x560..720,y360..500)= 9604/22400 = 0.4288 + 三帧两两不同(min mean_abs_diff=12.5);缺字空白位=0 +scripts/check-no-white-blocks.py 三帧 → checked=3 failures=0 OK + +确定性 +LivingVillage.Headless.dll --performance-baseline ×3 → final_digest= +953775FAEB2FDDE97289491AA260BD8D390C571E48A7A13AD2CB6FB7124F7F6C ×3,performance_determinism=PASS + +边界 +- 未改 Kernel/Sim.fs、Sim.step、地图/seed 口径、HUD/对话框结构、字形表、进门流程/HomeMode 语义 +- 未引外部素材;未生成 512×384;未 push +- 桥位置与通行逻辑未动(只加护岸石/栏杆贴图) +- 逐帧视觉复核仍受本写入模型不支持图像输入限制(P60 G3),需 vision 能力方复核 -- cgit v1.2.3