summaryrefslogtreecommitdiff
path: root/docs/维护说明.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/维护说明.md')
-rw-r--r--docs/维护说明.md40
1 files changed, 40 insertions, 0 deletions
diff --git a/docs/维护说明.md b/docs/维护说明.md
index c8047c8..96dcecd 100644
--- a/docs/维护说明.md
+++ b/docs/维护说明.md
@@ -1033,3 +1033,43 @@ python3 scripts/check-no-white-blocks.py /tmp/opencode/lv-p32-evidence/night
说明:`DrawMapFitted` 生成器渲染路径不绘制炊烟(炊烟只在样例村庄 `VillageArt.drawWorld` 的
late pass),故「灯笼光晕 + 水面」以生成器夜帧为准,「炊烟」见样例村庄昼间特写。所有帧
`check-no-white-blocks.py` 0 命中(无 ≥64x64 不透明纯白块)。
+
+## P33 素材接入样板(真实像素素材竖直切片)
+
+把样例村庄的**一类地面 + 一类角色**从程序绘制换成 CC0 真实像素素材,跑通接入管线;其余仍走
+原程序绘制图集 fallback。来源 / 许可 / sha256 完整记录见 `docs/素材来源.md`。
+
+- 构建(确定性,二次运行 byte-identical):
+
+ ```bash
+ python3 scripts/make-cc0-art.py
+ # -> Assets/cc0-tiles.png 128x32 (4 个 32x32 地面格)
+ # -> Assets/cc0-characters.png 3840x48 (5 变体 x 4 向 x 6 帧, 32x48 格)
+ ```
+
+ 同时修复了地块取样间距:源用无间距的 `tilemap_packed.png`(16px pitch),旧代码误按带间距
+ 的 17px pitch 采样导致错格。
+- 开关:`LV_ASSET_PACK=cc0` 启用真实素材;未设置或其它值回退程序绘制江南图集。选择入口
+ `VillageArt.useCc0Pack` / `selectedGroundAtlasRelativePath` / `selectedCharacterAtlasRelativePath`。
+- 规格:源 16x16 / 16x24 整数 **2x NEAREST** → 32x32 / 32x48;加载尺寸与整数倍由
+ `src/LivingVillage.Desktop.Tests/AssetPackTests.fs` 断言(含开关与 fallback)。
+- 证据(`docs/evidence/`,被 .gitignore 命中故 `git add -f`;`check-no-white-blocks.py` 4 帧 0 命中):
+ - `p33-atlas-day.png` / `p33-atlas-night.png`:样例村庄真实素材昼 / 夜整帧 1280x720。
+ - `p33-atlas-closeup-2x.png`:村庄地面 + 角色 2x NEAREST 特写(Kenney 草色 (78,151,76) 与
+ (132,198,105) 合计约 7.4 万像素,证实真素材上图)。
+ - `p33-atlas-baseline-day.png`:同场景程序绘制 fallback 对照(草色 (66,112,70)),与真实素材
+ 帧明显不同(昼帧约 92% 像素差异)。
+- 复现:
+
+ ```bash
+ DLL=src/LivingVillage.Desktop/bin/Release/net8.0/LivingVillage.Desktop.dll
+ for h in 12.0 23.5; do
+ tag=day; [ "$h" = 23.5 ] && tag=night
+ timeout 20 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=p33-$tag- LV_ASSET_PACK=cc0 \
+ LV_RECORD_DIR=/tmp/opencode/lv-p33-evidence/$tag dotnet "$DLL"
+ done
+ ```
+
+- 范围:本单只接入基础地块与一类角色;动画全套 / 全村 / 中式元素补绘留待后续切片。