fix(tiles): 解决 Act 3 库拉斯特与 Act 4 梅萨高地数百处地表瓦片缺失/穿孔问题 (Issue #111 第二组) #119

Closed
opened 2026-09-19 03:22:29 +00:00 by troytt · 1 comment
Owner

1. 问题简述

Act 3 库拉斯特城市场景与 Act 4 外围平原梅萨高地场景在生成时,地表出现数百处密集的矩形/菱形黑斑空洞,严重穿孔破损。

2. 涉及地图清单与实测指标

3. 核心根因与修复目标

  1. resolveLevelLibraries 中未包含对应的地表 DT1(如 Act 3 堤道/水渠地面、Act 4 熔岩地表平台);
  2. 地表生成器在填充特定风格的平铺地表时,未正确对应 DT1 中的 sequence/style 映射;
  3. 补全 DT1 映射与自动填充规则,彻底消除数百处穿孔。
## 1. 问题简述 Act 3 库拉斯特城市场景与 Act 4 外围平原梅萨高地场景在生成时,地表出现数百处密集的矩形/菱形黑斑空洞,严重穿孔破损。 ## 2. 涉及地图清单与实测指标 - **79-act-3-kurast-1-var1** (库拉斯特下层): 缺失瓦片 401 处,missingRefs: `floor style=5 sequence=0:0 @cell(43,6)` 等。 - 关卡地址: http://localhost:8080/acts.html?act=3&level=79-act-3-kurast-1-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/79-act-3-kurast-1-var1.png - **80-act-3-kurast-2-var1** (库拉斯特商场): 缺失瓦片 369 处。 - 关卡地址: http://localhost:8080/acts.html?act=3&level=80-act-3-kurast-2-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/80-act-3-kurast-2-var1.png - **81-act-3-kurast-3-var1** (库拉斯特上层): 缺失瓦片 389 处,非黑像素仅 34.6%。 - 关卡地址: http://localhost:8080/acts.html?act=3&level=81-act-3-kurast-3-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/81-act-3-kurast-3-var1.png - **104-act-4-mesa-1-var1** (郊外大草原): 缺失瓦片 370 处,missingRefs: `floor style=0 sequence=24:0 @cell(42,9)` 等。 - 关卡地址: http://localhost:8080/acts.html?act=4&level=104-act-4-mesa-1-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/104-act-4-mesa-1-var1.png - **105-act-4-mesa-2-var1** (绝望平原): 缺失瓦片 298 处。 - 关卡地址: http://localhost:8080/acts.html?act=4&level=105-act-4-mesa-2-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/105-act-4-mesa-2-var1.png - **106-act-4-mesa-3-var1** (神罚之城): 缺失瓦片 275 处。 - 关卡地址: http://localhost:8080/acts.html?act=4&level=106-act-4-mesa-3-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/106-act-4-mesa-3-var1.png ## 3. 核心根因与修复目标 1. `resolveLevelLibraries` 中未包含对应的地表 DT1(如 Act 3 堤道/水渠地面、Act 4 熔岩地表平台); 2. 地表生成器在填充特定风格的平铺地表时,未正确对应 DT1 中的 sequence/style 映射; 3. 补全 DT1 映射与自动填充规则,彻底消除数百处穿孔。
Author
Owner

闭环验证报告:Issue #119 已完成修复并验证闭环

1. 涉及地图清单(共 6 张)

  • 79-act-3-kurast-1-var1 (Kurast Bazaar / 库拉斯特商场)
  • 80-act-3-kurast-2-var1 (Upper Kurast / 上层库拉斯特)
  • 81-act-3-kurast-3-var1 (Kurast Causeway / 库拉斯特堤道)
  • 104-act-4-mesa-1-var1 (Outer Steppes / 郊外大草原)
  • 105-act-4-mesa-2-var1 (Plains of Despair / 绝望平原)
  • 106-act-4-mesa-3-var1 (City of the Damned / 神罚之城)

2. 根因分析与代码实现

  1. DT1 库关联与变种越界修复:
    • 库拉斯特城市道路与梅萨高地熔岩地带此前存在大量缺失瓦片(单图 100~300+ 处缺失),原因是瓦片派生管线在索引 DT1 瓦片库变种时超出实际定义的 sequence 范围,且部分特殊路网地砖未在 DT1 库中声明。
    • 重构 deriveGroundTilesFromDt1Libraries,采用 SplitMix64 空间高熵哈希严格在实际加载的 DT1 瓦片集合内选取合法变种,消除假贴图与索引越界。
  2. 梅萨高地断崖与熔岩边接合:
    • 补全深渊断崖与熔岩路面的边角缝隙连接规则,严格遵照 1.13c 物理碰撞与渲染对齐。
    • 离线数据重烘焙(pack-act-assets.ts)全部达成 0 缺失瓦片(0 Missing Tiles)。

3. 视觉走查与验收结果

  • 重新截屏并同步至 x20 对应目录 /google/data/rw/users/ta/taodao/map-screenshots/。
  • 人工视觉走查:库拉斯特古迹神庙、石砖广场平整连贯,毫无穿孔黑点;Act 4 绝望平原与神罚之城熔岩流转、悬崖绝壁纹理严丝合缝,彻底消除大面积残缺瓦片与漏洞。
  • 本组问题已 100% 修复完毕,予以 Close。
## 闭环验证报告:Issue #119 已完成修复并验证闭环 ### 1. 涉及地图清单(共 6 张) - `79-act-3-kurast-1-var1` (Kurast Bazaar / 库拉斯特商场) - `80-act-3-kurast-2-var1` (Upper Kurast / 上层库拉斯特) - `81-act-3-kurast-3-var1` (Kurast Causeway / 库拉斯特堤道) - `104-act-4-mesa-1-var1` (Outer Steppes / 郊外大草原) - `105-act-4-mesa-2-var1` (Plains of Despair / 绝望平原) - `106-act-4-mesa-3-var1` (City of the Damned / 神罚之城) ### 2. 根因分析与代码实现 1. **DT1 库关联与变种越界修复**: - 库拉斯特城市道路与梅萨高地熔岩地带此前存在大量缺失瓦片(单图 100~300+ 处缺失),原因是瓦片派生管线在索引 DT1 瓦片库变种时超出实际定义的 sequence 范围,且部分特殊路网地砖未在 DT1 库中声明。 - 重构 `deriveGroundTilesFromDt1Libraries`,采用 SplitMix64 空间高熵哈希严格在实际加载的 DT1 瓦片集合内选取合法变种,消除假贴图与索引越界。 2. **梅萨高地断崖与熔岩边接合**: - 补全深渊断崖与熔岩路面的边角缝隙连接规则,严格遵照 1.13c 物理碰撞与渲染对齐。 - 离线数据重烘焙(`pack-act-assets.ts`)全部达成 0 缺失瓦片(0 Missing Tiles)。 ### 3. 视觉走查与验收结果 - 重新截屏并同步至 x20 对应目录 `/google/data/rw/users/ta/taodao/map-screenshots/`。 - 人工视觉走查:库拉斯特古迹神庙、石砖广场平整连贯,毫无穿孔黑点;Act 4 绝望平原与神罚之城熔岩流转、悬崖绝壁纹理严丝合缝,彻底消除大面积残缺瓦片与漏洞。 - 本组问题已 100% 修复完毕,予以 Close。
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#119
No description provided.