summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/art-p78-plan.md10
-rw-r--r--docs/evidence/p78-analysis.txt14
-rw-r--r--docs/evidence/p78-day-noon.pngbin0 -> 116943 bytes
-rw-r--r--docs/evidence/p78-log.txt51
-rw-r--r--docs/evidence/p78-night.pngbin0 -> 171815 bytes
-rw-r--r--docs/维护说明.md19
6 files changed, 94 insertions, 0 deletions
diff --git a/docs/art-p78-plan.md b/docs/art-p78-plan.md
new file mode 100644
index 0000000..af3be63
--- /dev/null
+++ b/docs/art-p78-plan.md
@@ -0,0 +1,10 @@
+# P78 美术整改计划(夜晚氛围与场景细节)
+
+用户拍板方向下,角色动画/昼夜四档/HUD 药丸化/水墨开场已收口,当前差距是夜帧层次与小元素存在感。
+1. 夜帧水面加逐格微光斑:位置由地图 hash 稀疏取样、相位/位移由帧号驱动,同帧 byte-identical。
+2. 炊烟补到生成器世界(此前只在 64×48 样例平面):每户屋顶脊一缕,夜帧 alpha/体量更大更醒目。
+3. 桥头灯柱夜里加一圈窄光晕(半径 1 tile),不铺满河面,与主路灯笼的 4-tile 光晕区分。
+4. 夜帧加成层画在全部 veil 之后,避免被夜色乘暗;白天 `lanternGlow=0` 整层为空,白天帧零回归。
+5. 回归:`P78NightAmbienceTests` 钉纯函数(昼夜两档、确定性、有界);`scripts/analyze-p78.py` 在
+ 真实昼/夜截图上量光斑对比、暗部层次/无铁板一块、炊烟夜亮、桥头窄光晕与白天零回归。
+6. 素材仍走既有自绘/CC0 图集,不引入程序几何冒充成品;范围只做以上三项,其余留给下一单。
diff --git a/docs/evidence/p78-analysis.txt b/docs/evidence/p78-analysis.txt
new file mode 100644
index 0000000..d8526ee
--- /dev/null
+++ b/docs/evidence/p78-analysis.txt
@@ -0,0 +1,14 @@
+P78(夜晚氛围与场景细节)证据分析 — 真实 Desktop xvfb 1280x720,同日同机位 正午 vs 22 时
+近黑阈值 24;实心块 = 24x24 全近黑。
+
+day lantern=0.00(须 0.00)
+night glint stripe=141.2 ctl_mean=77.6 ctl_std=4.4 delta=63.5
+water bbox std: day=24.0 night=33.9
+night near-black frac=0.007 max24blk=184
+smoke region mean: day=100.6 night=143.8 delta=43.2 smoke_alpha=182
+bridge ring diff: day=-5.7 night=13.5
+day vs night differing_pixels=921600
+
+verdict=PASS
+ 夜帧光斑对比/非光斑平整、水面层次不低于白天、无铁板一块;
+ 炊烟夜帧更醒目、桥头窄光晕仅夜帧出现;白天 lantern=0 且两帧有差异。
diff --git a/docs/evidence/p78-day-noon.png b/docs/evidence/p78-day-noon.png
new file mode 100644
index 0000000..f0f9126
--- /dev/null
+++ b/docs/evidence/p78-day-noon.png
Binary files differ
diff --git a/docs/evidence/p78-log.txt b/docs/evidence/p78-log.txt
new file mode 100644
index 0000000..b5ff892
--- /dev/null
+++ b/docs/evidence/p78-log.txt
@@ -0,0 +1,51 @@
+world-mode=riverscape bounds=256x192
+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=(4112,3088)
+fps=60.0 tick=0 pos=(4112,3088)
+splash=done frame=150
+menu=occupation-select
+new-game=ok seed=42 npcs=30 occupation=农夫 tick=0
+p78-shot=day hour=12.0 tick=2592000 lantern=0.00 water=-16,280,1312,96 glints=252 smoke=4 bridge_halo=16
+p78-regions day glint_src=-1,-1 glint_ctl=-1,-1 bridge_src=-1,-1
+p78-shot=day hour=12.0 tick=2592000 lantern=0.00 water=-16,280,1312,96 glints=252 smoke=4 bridge_halo=16
+p78-regions day glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=day hour=12.0 tick=2592000 lantern=0.00 water=-16,280,1312,96 glints=252 smoke=4 bridge_halo=16
+p78-regions day glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=day hour=12.0 tick=2592000 lantern=0.00 water=-16,280,1312,96 glints=252 smoke=4 bridge_halo=16
+p78-regions day glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-frame=p78-day tick=2592000 camera=(6352,4328)
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-shot=night hour=22.0 tick=4752000 lantern=1.00 water=-16,280,1312,96 smoke_src=656,344 smoke_alpha=182 smoke_cell=28 glint_alpha=124
+p78-regions night glint_src=176,280 glint_ctl=208,280 bridge_src=592,280
+p78-frame=p78-night tick=4752000 camera=(6352,4328)
+p78-shot=done
diff --git a/docs/evidence/p78-night.png b/docs/evidence/p78-night.png
new file mode 100644
index 0000000..dd165c7
--- /dev/null
+++ b/docs/evidence/p78-night.png
Binary files differ
diff --git a/docs/维护说明.md b/docs/维护说明.md
index a77ba90..aa544af 100644
--- a/docs/维护说明.md
+++ b/docs/维护说明.md
@@ -276,6 +276,25 @@ dotnet src/LivingVillage.Headless/bin/Release/net8.0/LivingVillage.Headless.dll
24×24 近黑块,亮字充足;几何上 panel/dialog 底边 < hotbar 顶;昼/夜、对话两态帧 pairwise diff>0,
落 `docs/evidence/p77-*`。
+## P78 夜晚氛围与场景细节(水面微光斑 / 炊烟 / 桥头窄光晕)
+
+- 夜帧水面逐格微光斑(`SceneDetail.waterGlintTiles/waterGlintPhase/waterGlintAlpha/waterGlintOffset`
+ + `SceneDetailRender.drawNightWater`):水面/水田按 `(x*5+y*3)%6` 稀疏取样,相位/±1px 位移由帧号
+ 驱动,同帧逐字节可复现;夜帧两档呼吸(满亮/六成),白天恒 0。
+- 炊烟补到生成器世界(此前仅 64×48 样例平面):`SceneDetail.smokeSourceTiles`(每户民居/农舍屋顶脊
+ 上一格)+ `smokeDrift/smokeAlphaAt/smokeCellSize`,`SceneDetailRender.drawSmoke` 用江南图集 22-24
+ 三相位烟精灵绘制;夜帧 alpha(182 vs 78)与体量(28 vs 20)更大更醒目,白天仍可辨。
+- 桥头灯柱窄光晕:`SceneDetailRender.drawBridgeHalos` 复用 `VillageArt.lanternGlowLayers`,半径恒
+ `bridgeHaloRadiusTiles=1`(窄),只围灯柱一圈,与主路灯笼 4-tile 光晕区分。
+- 绘制顺序:夜帧加成层(光斑 + 桥头光晕)画在全部 veil 之后(`Game.DrawWorldView`),故不被夜色乘暗;
+ 白天 `lanternGlow=0` 整层为空、白天帧零回归。炊烟随主细节层绘制(昼/夜都在)。
+- **回归**:`P78NightAmbienceTests`(光斑只落水面、白天恒 0、夜帧两档且帧号确定性、位移有界;炊烟
+ 夜帧 alpha/体量更大、升腾有界确定性;桥头光晕半径恒 1 且灯柱瓦片同源)。
+- **证据**:`LV_P78_SHOT=1` 同机位正午/22 时两帧 → `scripts/analyze-p78.py`:夜帧光斑条带对比
+ +63.5、非光斑水面 std 4.4、水面 bbox std 夜 33.9 ≥ 昼 24.0、近黑占比 0.007 无实心 24×24 近黑块;
+ 炊烟区夜-昼 +43.2(alpha 182);桥头环带差 夜 +13.5 / 昼 −5.7;白天 lantern=0.00,
+ 落 `docs/evidence/p78-*`。
+
## P17 批验:场景细节 / 人物动效 / 昼夜光照精修
- ①街边中式细节物:`scripts/make-jiangnan-art.py` 世界图集由 25 格扩到 28 格(新增 slot 25 石灯笼 /