summaryrefslogtreecommitdiff
path: root/docs/维护说明.md
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-28 08:42:59 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-28 08:42:59 +0800
commitfd429fffb9328515beb120da2807faf5305a6e0c (patch)
tree3af2346a538fc4a4c05afce602c2030615b88e6c /docs/维护说明.md
parent39f5c7d9951fb4c3ab8cb151665233ac1b6df76a (diff)
downloadliving-village-fd429fffb9328515beb120da2807faf5305a6e0c.tar.gz
feat(art): P34 素材扩展切片(水面/屋顶/墙体/栏杆)
- cc0-tiles.png 由 4 格扩到 12 格:0-3 仍 Kenney 地面,4-11 为自绘构件 (4 水A/5 水B/6 屋脊/7 屋檐/8 木构墙/9 木格窗/10 栏杆/11 门) - 自绘 2 相位水面 cc0WaterTileIndexAt=(tick/32+x+2y)%2,单帧覆盖双相位; 河道与水田/水网共用;江南 fallback 不变 - drawWorld 接入:cc0 模式下民居屋顶/墙/窗/门、桥栏杆、水面走真素材,其余道具仍江南 - AssetPackTests 更新图集尺寸(12 格)+整数缩放,新增构件索引与双水相位用例 - docs/素材来源.md 记录自绘清单;同步 assets-and-licenses 与维护说明 P34 小节 - docs/evidence/p34-*.png 昼/夜/2x 特写/水波/对照(check-no-white-blocks 0 命中)
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
+ ```
+
+- 范围:仍为切片,不做全村;动画全套与更多中式元素补绘留待后续。