summaryrefslogtreecommitdiff
path: root/docs/维护说明.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/维护说明.md')
-rw-r--r--docs/维护说明.md41
1 files changed, 41 insertions, 0 deletions
diff --git a/docs/维护说明.md b/docs/维护说明.md
index 8ea81ec..ae0ae47 100644
--- a/docs/维护说明.md
+++ b/docs/维护说明.md
@@ -1287,3 +1287,44 @@ late pass),故「灯笼光晕 + 水面」以生成器夜帧为准,「炊�
`CaptureP39Shot` 落盘(避免软件渲染每帧多跑导致缓冲相同),须配合 `LV_ASSET_PACK=cc0`。
- **范围**:本单只做横向美术扩展与确定性摆放 + 夜光接入;不写瓦片、不改可达性、不动 `Sim.step`
(digest 不变),P36/P37/P38 均未受影响。
+
+## P40 美术深化切片(石板路衔接 / 乌篷船特征 / 石灯笼与红灯笼区分)
+
+承接 P39 验收的两处观察点(day 帧孤立石板摆位、乌篷船特征较小),做美术深化,范围严格限定:
+
+- **石板路衔接**:新增纯函数 `cc0PavingTiles map`(`VillageArt.fs`)=「本身或四邻属于
+ `map.Paths`(主路/桥引道/门口)或 `map.Bridges`(桥面)」的石板格索引集合。cc0 模式下
+ `drawTerrainTile` 的 code 2 只用该集合铺**连贯石板带**(新自绘索引 19),稀疏
+ `DecorativeStones` 孤立散布石板**改画草地**——seed 42/256x192 实测:全图 782 石板格中
+ 502 连贯、280 孤立被抑制。fallback(无 cc0 图集)与无 `mapGen` 的大世界保持原样。
+- **乌篷船特征**:重绘索引 14/15,船体放大到满 64x32 足迹、船帮加高,**拱形竹篷**高拱 +
+ 竹骨 + 脊线显著,桥上/岸上一眼可辨(仍是自绘像素格,不引外部素材)。
+- **石灯笼 vs 红灯笼形态区分**:石灯笼(16)重绘为明确三段石结构(宽石座 / 石室暖芯 /
+ 外挑石顶盖 + 宝顶);新增红灯笼(20)红纸圆身 + 竹骨 + 金穗 + 木顶盖,门口一盏。两者
+ **复用同一条 P14 预乘 alpha 径向光晕路径**(`nightLightTilesWith` 纳入 `cc0RedLanternTiles`),
+ 不新增光照系统。
+- **图集**:`make-cc0-art.py` 由 608x32(19 格)扩到 **672x32(21 格)**,索引 19 石板 / 20 红灯笼;
+ 重绘 14/15/16;**索引 0-13、17-18 逐字节不变**(`git show HEAD:...` 复核)。二次生成 byte-identical。
+- **确定性**:全部摆放为 map 纯函数;同 seed 昼/夜帧位置一致(`P40ArtTests` 断言),重生成逐字节
+ 相同;`Sim.step` 未改,`--performance-baseline` digest 不变。
+- **回归测试**:新增 `src/LivingVillage.Desktop.Tests/P40ArtTests.fs`(6 例:连贯带覆盖路网且
+ 抑制孤立散布、摆放确定性、红灯笼落门口且确定、红/石灯笼同光晕路径、同 seed 重生成一致、
+ P40 索引在界内);`AssetPackTests` 索引列表加入 19/20。Release 全量 Desktop **201/201**、
+ Kernel **119/119** exit 0。
+- **证据**(`docs/evidence/`,`git add -f`;`check-no-white-blocks.py` 5 帧 0 命中,重复运行
+ byte-identical):
+ - `p40-day.png` / `p40-night.png`:cc0 模式村庄昼 / 夜整帧(相机对准乌篷船河段;昼帧红灯笼
+ 与石板带真实可见)。
+ - `p40-boat-closeup-2x.png`(400x240):乌篷船 2x NEAREST 特写,拱形竹篷结构清晰。
+- **复现**:
+
+ ```bash
+ DLL=src/LivingVillage.Desktop/bin/Release/net8.0/LivingVillage.Desktop.dll
+ timeout 90 xvfb-run -a -s "-screen 0 1280x720x24" \
+ env LV_P40_SHOT=1 LV_ASSET_PACK=cc0 LV_RECORD_DIR=docs/evidence dotnet "$DLL"
+ python3 scripts/make-p40-closeups.py docs/evidence docs/evidence
+ python3 scripts/check-no-white-blocks.py docs/evidence/p40-day.png docs/evidence/p40-night.png \
+ docs/evidence/p40-boat-closeup-2x.png
+ ```
+- **范围**:本单只做上述三处美术深化 + 对应确定性摆放/光晕接入;不写瓦片、不改可达性、
+ 不动 `Sim.step`,玩法/重构/新模块未触碰。