fix(shanhai): 治本去除竞技场背景烤黑边(裁黑带+bicubic 回填,四边岩纹收口)
- assets/bg/bg-map1-arena-01.jpg: 裁左右顶烤黑带 + bicubic 缩放回填 1560x2960,四边纯黑硬框消除(采样 min 21-34 带纹理),右崖本征暗阴影保留作暗崖收口 - 拼接/贴边/裁切已于 a4dc91c4 解决;本提交治本黑边,背景定稿
This commit is contained in:
parent
a4dc91c43a
commit
f6f817da4c
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
@ -0,0 +1,170 @@
|
||||
{
|
||||
"checkpoint": "round-13 治本去 bg 烤黑边(裁黑带+bicubic 缩放回填)替换 + CDP 复核",
|
||||
"utc": "2026-07-25T09:17:59.386Z",
|
||||
"machine": "lili-mac.local(开发机本地)",
|
||||
"node": "v22.22.3",
|
||||
"url": "http://127.0.0.1:4533/?engine=stub&mode=evidence&seed=777",
|
||||
"dpr": 2,
|
||||
"viewport": {
|
||||
"w": 390,
|
||||
"h": 844
|
||||
},
|
||||
"arena": {
|
||||
"w": 1560,
|
||||
"h": 2960
|
||||
},
|
||||
"collector": "/tmp/arena-e2e-r13.mjs(临时,不入仓)",
|
||||
"shots": [
|
||||
{
|
||||
"name": "01-arena-center-panorama.png",
|
||||
"desc": "全景:玩家场心(0,0),镜头居中,竞技场整幅背景中心区",
|
||||
"phase": "play",
|
||||
"pos": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"timeS": 0.9,
|
||||
"score": 0,
|
||||
"drainOk": true,
|
||||
"sha256": "584181a172ca11199aed693234a963a63c2c17177e8cc6e7b80c95f0b3216784",
|
||||
"bytes": 1652033,
|
||||
"utc": "2026-07-25T09:18:05.540Z",
|
||||
"brightness": {
|
||||
"ok": true,
|
||||
"width": 780,
|
||||
"height": 1688,
|
||||
"bright": 1282717,
|
||||
"total": 1316640,
|
||||
"ratio": 0.974
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "02-arena-edge-right.png",
|
||||
"desc": "右边缘:玩家贴右界(x≈684,岩壁内沿),应见岩纹收口而非黑带",
|
||||
"phase": "play",
|
||||
"pos": {
|
||||
"x": 684,
|
||||
"y": 0
|
||||
},
|
||||
"timeS": 7,
|
||||
"score": 3,
|
||||
"drainOk": true,
|
||||
"sha256": "7d9532a62c5b8dc17289c0ee67d6d52a57adb87934347cfd1f589aca77b93cd4",
|
||||
"bytes": 1531895,
|
||||
"utc": "2026-07-25T09:18:06.115Z",
|
||||
"brightness": {
|
||||
"ok": true,
|
||||
"width": 780,
|
||||
"height": 1688,
|
||||
"bright": 691791,
|
||||
"total": 1316640,
|
||||
"ratio": 0.525
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "03-arena-edge-top.png",
|
||||
"desc": "上边缘/右上:玩家贴上界(y≈-1384),顶应岩纹收口",
|
||||
"phase": "play",
|
||||
"pos": {
|
||||
"x": 684,
|
||||
"y": -1384
|
||||
},
|
||||
"timeS": 23.7,
|
||||
"score": 15,
|
||||
"drainOk": true,
|
||||
"sha256": "d0f1f12094b20bd72b6f21fb738d2f12431ce02dbe693214301c87bd96cd0592",
|
||||
"bytes": 1341817,
|
||||
"utc": "2026-07-25T09:18:07.117Z",
|
||||
"brightness": {
|
||||
"ok": true,
|
||||
"width": 780,
|
||||
"height": 1688,
|
||||
"bright": 260942,
|
||||
"total": 1316640,
|
||||
"ratio": 0.198
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "04-arena-edge-left.png",
|
||||
"desc": "左边缘/左上:玩家贴左界(x≈-684),左应岩纹收口",
|
||||
"phase": "play",
|
||||
"pos": {
|
||||
"x": -684,
|
||||
"y": -1384
|
||||
},
|
||||
"timeS": 40.5,
|
||||
"score": 28,
|
||||
"drainOk": true,
|
||||
"sha256": "5c9efb033ed4c58bf4f276c4a2a59057c12c515d7845956ef985529a79ba7580",
|
||||
"bytes": 1254619,
|
||||
"utc": "2026-07-25T09:18:08.201Z",
|
||||
"brightness": {
|
||||
"ok": true,
|
||||
"width": 780,
|
||||
"height": 1688,
|
||||
"bright": 214500,
|
||||
"total": 1316640,
|
||||
"ratio": 0.163
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "05-arena-edge-bottom.png",
|
||||
"desc": "下边缘/左下:玩家贴下界(y≈1384),底应岩纹收口",
|
||||
"phase": "play",
|
||||
"pos": {
|
||||
"x": -684,
|
||||
"y": 1384
|
||||
},
|
||||
"timeS": 73.5,
|
||||
"score": 55,
|
||||
"drainOk": true,
|
||||
"sha256": "0e24f49eb38d538022564445bb3e458cf807432d8f10dcaff248fe31dd988189",
|
||||
"bytes": 1524921,
|
||||
"utc": "2026-07-25T09:18:09.678Z",
|
||||
"brightness": {
|
||||
"ok": true,
|
||||
"width": 780,
|
||||
"height": 1688,
|
||||
"bright": 593402,
|
||||
"total": 1316640,
|
||||
"ratio": 0.451
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "06-arena-corner-br.png",
|
||||
"desc": "右下角:同时贴右+下界,角落收口",
|
||||
"phase": "play",
|
||||
"pos": {
|
||||
"x": 684,
|
||||
"y": 1384
|
||||
},
|
||||
"timeS": 90.2,
|
||||
"score": 71,
|
||||
"drainOk": true,
|
||||
"sha256": "5ac5fff82609edc4333e439b22cea591ea62ba901796716356172af0c99493fa",
|
||||
"bytes": 1410634,
|
||||
"utc": "2026-07-25T09:18:10.831Z",
|
||||
"brightness": {
|
||||
"ok": true,
|
||||
"width": 780,
|
||||
"height": 1688,
|
||||
"bright": 1302327,
|
||||
"total": 1316640,
|
||||
"ratio": 0.989
|
||||
}
|
||||
}
|
||||
],
|
||||
"targetId": "3ACE052453272F97844CB90FF843ADA2",
|
||||
"boot": {
|
||||
"ok": true
|
||||
},
|
||||
"arenaBgAssetProbe": "ready 1560x2960",
|
||||
"startState": {
|
||||
"phase": "play",
|
||||
"pos": {
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
},
|
||||
"consoleErrors": []
|
||||
}
|
||||
@ -0,0 +1,89 @@
|
||||
# round-13 · 治本去除背景图烤黑边
|
||||
|
||||
- 检查点:round-13(去 bg-map1-arena-01.jpg 烤黑边 + 替换重接 + CDP 复核)
|
||||
- 时间(UTC):2026-07-25T09:03 取证 / 处理 02:01–02:03
|
||||
- 机器:lili-mac.local(开发机本地,非 mini-desktop),node v22.22.3,Chrome 150
|
||||
- 本检查点**未 commit**(待主代理复核 + 创始人眼验)
|
||||
- 改动边界:仅 `assets/bg/bg-map1-arena-01.jpg`(替换)+ `dist/`(重打 JS bundle)+ 本目录证据;**未改 src/、plugins/、contracts**
|
||||
|
||||
## 病灶(处理前逐列/逐行亮度剖面测定)
|
||||
|
||||
目标图 1560×2960。四边黑带性质不同:
|
||||
|
||||
- **左**:纯黑 (0,0,0) 平铺 0–56px,x≈80 处锐变进岩纹(列均亮 1.4→21.3)。
|
||||
- **右**:纯黑 0–56px + 近黑缓坡延伸到 offset≈130 才到岩纹(列均亮 17→22,无锐变)。
|
||||
- **顶**:无纯黑,是暗青崖渐变 0–153px(行均亮 16–22,有纹理)。
|
||||
- **底**:**本即岩纹**(行均亮 30–44,苔绿),无黑带,无需处理。
|
||||
|
||||
左右两条**纯黑竖带**是烤边病灶:游戏在四边叠半透明暗角(`drawArenaBounds`,峰值 α=0.5),半透明叠纯黑仍≈黑,render 侧治不了,故治本改 jpg。
|
||||
|
||||
## 处理手法(PIL 确定性:裁黑带 + bicubic 缩放回填)
|
||||
|
||||
裁掉四边黑/近黑带到岩纹起始处,裁后核心区 bicubic 缩放回 1560×2960:
|
||||
|
||||
- 裁切线:左 L=84、右 R=1428(右裁 132)、顶 T=160、底不裁。裁后核心 1344×2800。
|
||||
- 缩放比:x×1.161 / y×1.057。存 JPEG quality=92 / 4:2:2。
|
||||
|
||||
### 为何选缩放、弃镜像(对比实证)
|
||||
|
||||
并行产出两候选(同裁切线),用 Read 工具**亲眼看**全景与边条后定夺(亮度二阶指标抓不到结构对称,必须肉眼):
|
||||
|
||||
- **镜像外翻填充**(`_cmp/preview-M-mirror.png`):黑带虽除,但左右岩壁巨石被镜像成左右对称的"墨渍/Rorschach"重复图案,顶部出现镜像拱形——正是工单警告的镜像痕迹,人工感强。
|
||||
- **裁后缩放**(`_cmp/preview-S-scale.png`):黑带除,岩壁巨石自然延伸到四边,无对称伪影;1.16x 上采样颗粒在全景与边条原分辨率下均不可见。
|
||||
|
||||
结论:镜像痕迹(中心无、边缘显眼的人工对称)比缩放颗粒(全图轻微软化)更刺眼,故选缩放。镜像候选仅作诚实留证,未采用。
|
||||
|
||||
### 为何不用 mmx 重生成
|
||||
|
||||
本地确定性图像处理已干净消除病灶,无需引入生成模型的随机性与 API 成本;且重生成无法保证与现有竞技场构图/熔岩走向一致,会牵动 render 侧已调好的暗角/clamp 对齐。仅在 PIL 两法均不可接受时才退回 mmx(本检查点未触发)。
|
||||
|
||||
## 副作用(如实)
|
||||
|
||||
- **整图轻微上采样**:中心主玩区随边一起放大 1.16x,岩纹略软;亲眼看(01 全景)颗粒不可接受度低。
|
||||
- **右崖本征阴影**:源图右半是阴影崖面(岩纹列均亮 ~20–26),非烤边。缩放后右缘读作"暗崖"而非"亮岩"——这是源图本来的明暗,不是缺陷;游戏暗角叠其上读作天然崖影。
|
||||
- **四角偏暗**:裁切线恰落在左右黑带与顶暗带相交的暗角处,四角 12×12 均亮 8–11;游戏中四角本就被双暗角压到最暗(round-12 同位亮度比 0.049–0.105),暗角属设计内,未因本次处理变差。
|
||||
- 无镜像痕迹、无裁切错位、无颜色偏移。
|
||||
|
||||
## 处理后四边像素采样(读磁盘新 asset,含 JPEG 重压真实值)
|
||||
|
||||
0–120px 列/行**均亮**(每 15px),应渐变、无平黑硬带:
|
||||
|
||||
| 边 | 0 | 15 | 30 | 45 | 60 | 75 | 90 | 105 | 0–120 最小 |
|
||||
|---|---|---|---|---|---|---|---|---|---|
|
||||
| 左 | 23.7 | 24.2 | 25.0 | 25.4 | 27.3 | 27.1 | 27.2 | 28.8 | 23.3 |
|
||||
| 右 | 22.0 | 23.6 | 23.7 | 23.5 | 25.6 | 25.9 | 25.0 | 23.3 | 21.4 |
|
||||
| 顶 | 26.6 | 25.5 | 29.9 | 26.4 | 27.1 | 27.0 | 28.7 | 33.5 | 25.5 |
|
||||
| 底 | 34.7 | 35.2 | 37.0 | 36.8 | 36.3 | 39.2 | 44.9 | 48.2 | 34.4 |
|
||||
|
||||
- 最外 4px 平黑带占比:左 0.65% / 右 0.71% / 顶 0.24% / 底 0.19%(**处理前左右≈100%**;现仅为岩缝深阴影的散布像素,非连续硬带)。
|
||||
- 缘带纹理(列/行均亮标准差):左 1.9 / 右 1.2 / 顶 2.4 / 底 4.7(>0 = 有岩纹渐变,非平黑)。
|
||||
- 右缘最小 21.4 略低于 22 阈值:即上表右崖本征阴影(带纹理渐变,非黑带),见副作用说明。
|
||||
|
||||
## sha256
|
||||
|
||||
- 新 asset `assets/bg/bg-map1-arena-01.jpg`:`5e3cc78b3339efc616efeb573924224c359c5cfeb47a8d3f4fef25029b80db8f`(1560×2960,1.41MB)
|
||||
- 处理前备份 `bg-before-blackfix.jpg`:`aaa42f3a2f2a47e35f2d7f68cf7e64e7a53726983f68081c0d9f86daadec1956`
|
||||
- 6 截图 sha256 见 `00-arena-bg-result.json` 各 shot(本文末尾亦列)。
|
||||
|
||||
## CDP 截图(engine=stub&mode=evidence,seed=777,dpr2,视口 390×844;stepFrames 确定性驱动)
|
||||
|
||||
进 play 态,对角走位压墙钳到四边/四角,截图前 `drainFade` 关升级弹层并等其关闭淡出(≤250ms)结束,保证截的是干净战场:
|
||||
|
||||
| 文件 | 视角 | 玩家位 | phase | 亮度比(lum>40,自定口径,仅看相对) |
|
||||
|---|---|---|---|---|
|
||||
| 01-arena-center-panorama.png | 中心全景 | (0,0) | play | 0.974 |
|
||||
| 02-arena-edge-right.png | 右边缘 | (684,0) | play | 0.525 |
|
||||
| 03-arena-edge-top.png | 顶/右上 | (684,-1384) | play | 0.198 |
|
||||
| 04-arena-edge-left.png | 左/左上 | (-684,-1384) | play | 0.163 |
|
||||
| 05-arena-edge-bottom.png | 底/左下 | (-684,1384) | play | 0.451 |
|
||||
| 06-arena-corner-br.png | 右下角 | (684,1384) | play | 0.989 |
|
||||
|
||||
6 张 sha256:
|
||||
- 01 `584181a172ca11199aed693234a963a63c2c17177e8cc6e7b80c95f0b3216784`
|
||||
- 02 `7d9532a62c5b8dc17289c0ee67d6d52a57adb87934347cfd1f589aca77b93cd4`
|
||||
- 03 `d0f1f12094b20bd72b6f21fb738d2f12431ce02dbe693214301c87bd96cd0592`
|
||||
- 04 `5c9efb033ed4c58bf4f276c4a2a59057c12c515d7845956ef985529a79ba7580`
|
||||
- 05 `0e24f49eb38d538022564445bb3e458cf807432d8f10dcaff248fe31dd988189`
|
||||
- 06 `5ac5fff82609edc4333e439b22cea591ea62ba901796716356172af0c99493fa`
|
||||
|
||||
肉眼复核结论(交创始人终验):左右原纯黑竖框已消失,改为岩壁/崖纹自然收口;顶缘为带纹理暗崖;底缘为岩纹。四边无 (0,0,0)/近黑硬带。亮度比仅自定口径参考,美丑不定论。
|
||||
Loading…
x
Reference in New Issue
Block a user