summaryrefslogtreecommitdiff
path: root/docs/维护说明.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/维护说明.md')
-rw-r--r--docs/维护说明.md36
1 files changed, 36 insertions, 0 deletions
diff --git a/docs/维护说明.md b/docs/维护说明.md
index 96dcecd..c095914 100644
--- a/docs/维护说明.md
+++ b/docs/维护说明.md
@@ -1073,3 +1073,39 @@ late pass),故「灯笼光晕 + 水面」以生成器夜帧为准,「炊�
```
- 范围:本单只接入基础地块与一类角色;动画全套 / 全村 / 中式元素补绘留待后续切片。
+
+## P34 素材扩展切片(水面 / 屋顶 / 墙体 / 栏杆)
+
+在 P33 竖直切片之上,把样例村庄更多表面/构件从程序几何切到真像素素材,延续 `LV_ASSET_PACK=cc0`
+开关与程序绘制 fallback。来源/许可/自绘清单见 `docs/素材来源.md`。
+
+- 图集扩展:`Assets/cc0-tiles.png` 由 128x32(4 格)扩到 **384x32(12 格)**。0-3 格仍为
+ Kenney Tiny Farm 地面(整数 2x);4-11 格为**自绘**构件(Kenney 农场包无水面/屋顶/墙/栏杆):
+ `4 water A / 5 water B / 6 roof ridge / 7 roof eave / 8 wall wood / 9 wall window / 10 railing / 11 door`。
+- 构建:`python3 scripts/make-cc0-art.py`(确定性,二次运行 byte-identical)。
+- 水面:自绘 **2 相位**,`cc0WaterTileIndexAt tick x y = (tick/32 + x + 2y) mod 2`,单帧内沿河
+ 同时出现两相位;河道与水田/水网(生成器 `code=4`)共用。江南 fallback 仍是 3 相位。
+- 屋顶 / 墙体 / 门:样例民居在 cc0 模式下用 6/7/8/9/11 格;桥面用 10 格栏杆;其余道具仍走
+ 江南图集。
+- 断言:`src/LivingVillage.Desktop.Tests/AssetPackTests.fs` 更新图集尺寸(12 格)与整数缩放,
+ 并新增「构件索引都在图集内 + 单帧覆盖两水相位」用例。
+- 证据(`docs/evidence/`,`git add -f`;`check-no-white-blocks.py` 5 帧 0 命中):
+ - `p34-realassets-day.png` / `p34-realassets-night.png`:样例村庄真实素材昼 / 夜整帧 1280x720。
+ - `p34-realassets-closeup-2x.png`:民居屋顶/白墙/桥栏杆/水面 2x NEAREST(青灰瓦 (52,58,72)、
+ 白墙 (234,228,212)、木栏杆 (112,74,46)、水面 (54,110,170) 均在场)。
+ - `p34-water-2x.png`:河面 2x 特写(同帧可见两相位波纹)。
+ - `p34-baseline-day.png`:同场景程序绘制 fallback 对照。
+- 复现:
+
+ ```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=5 \
+ LV_RECORD_NAME=p34-$tag- LV_ASSET_PACK=cc0 \
+ LV_RECORD_DIR=/tmp/opencode/lv-p34-evidence/$tag dotnet "$DLL"
+ done
+ ```
+
+- 范围:仍为切片,不做全村;动画全套与更多中式元素补绘留待后续。