fix(maze): 修复地牢/古墓/洞穴等迷宫类地图大面积纯黑虚空与出生点悬空 (Issue #111 第一组) #118

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

1. 问题简述

在无头真实浏览器走查中,发现地牢、古墓与洞穴等基于 Maze/Preset 拼接的室内场景存在极高比例的纯黑虚空,角色出生点悬浮在无地面的死区中心。

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

3. 核心根因与修复目标

  1. 迷宫生成器在房间规划与合并(Merge/MinRooms)时,网格未填满或未正确放置过渡组件,导致中央留白;
  2. 出生点查找逻辑 findIsoSpawn 需严格绑定到连通房间且具有真实地面的坐标,避免相机初始化定位在虚空;
  3. 修复迷宫生成器并对上述关卡重新烘焙验证。
## 1. 问题简述 在无头真实浏览器走查中,发现地牢、古墓与洞穴等基于 Maze/Preset 拼接的室内场景存在极高比例的纯黑虚空,角色出生点悬浮在无地面的死区中心。 ## 2. 涉及地图清单与实测指标 - **129-act-5-baal-temple-2-var1** (世界之石要塞二层): 非黑像素仅 3.4%,主视野中心几乎全黑,角色悬空。 - 关卡地址: http://localhost:8080/acts.html?act=5&level=129-act-5-baal-temple-2-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/129-act-5-baal-temple-2-var1.png - **12-act-1-cave-5-var1** (深坑一层): 非黑像素仅 9.3%,中心有效地面仅 10.7%,主视野中央大片纯黑。 - 关卡地址: http://localhost:8080/acts.html?act=1&level=12-act-1-cave-5-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/12-act-1-cave-5-var1.png - **66-act-2-tomb-tal-1-var1** (塔拉夏古墓 1): 非黑像素 24.0%,中心有效像素 14.9%,角色孤立悬于黑洞边缘。 - 关卡地址: http://localhost:8080/acts.html?act=2&level=66-act-2-tomb-tal-1-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/66-act-2-tomb-tal-1-var1.png - **72-act-2-tomb-tal-7-var1** (塔拉夏古墓 7): 非黑像素 27.3%,中心有效像素 10.7%,古墓大厅中央巨大黑洞深渊。 - 关卡地址: http://localhost:8080/acts.html?act=2&level=72-act-2-tomb-tal-7-var1 - 截图直链: https://x20web.corp.google.com/~taodao/map-screenshots/72-act-2-tomb-tal-7-var1.png ## 3. 核心根因与修复目标 1. 迷宫生成器在房间规划与合并(Merge/MinRooms)时,网格未填满或未正确放置过渡组件,导致中央留白; 2. 出生点查找逻辑 `findIsoSpawn` 需严格绑定到连通房间且具有真实地面的坐标,避免相机初始化定位在虚空; 3. 修复迷宫生成器并对上述关卡重新烘焙验证。
Author
Owner

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

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

  • 12-act-1-cave-5-var1 (Cave Level 5 / 洞穴第 5 层)
  • 129-act-5-baal-temple-2-var1 (Worldstone Keep Level 2 / 世界之石要塞第 2 层)
  • 72-act-2-tomb-tal-7-var1 (Tal Rasha's Tomb 7 / 塔·拉夏古墓 7)
  • 66-act-2-tomb-tal-1-var1 (Tal Rasha's Tomb 1 / 塔·拉夏古墓 1)

2. 根因分析与代码实现

  1. 出生点与视口锚定算法重构 (DRLG Ground Truth):
    • 原先视口居中与玩家出生点算法机械计算全图包围盒的几何中心 ((minX+maxX)/2, (minY+maxY)/2)。对于环状、弯曲、非凸多边形的地牢与古墓迷宫,几何中心直接落入未生成的虚空黑色区域,导致玩家首屏看到大面积纯黑或悬空。
    • 重构为 Blizzard DRLG 拓扑语义生成策略:优先寻找真实连通且合法的可行走地面瓦片(tile & COLLIDE_FLOOR && !(tile & (COLLIDE_WALL | COLLIDE_MASK_INVALID))),并智能吸附到地图预设出入口与关键地标。
  2. 迷宫瓦片烘焙严密性:
    • 解决古墓与洞穴墙壁及暗角连接处的拼接完整性,保证 Universal DT1s 正确注入。
    • 重新烘焙后,4 张迷宫地图的缺失瓦片数(Missing Tiles)全部为 0。

3. 视觉走查与验收结果

  • 重新截屏并同步至 x20 对应目录 /google/data/rw/users/ta/taodao/map-screenshots/。
  • 人工视觉走查:古墓石棺、墓室石墙、洞穴岩石与要塞火炬场景完整呈现,首屏完美对焦在真实场景核心,0 黑色虚空悬空,0 异常瓦片。
  • 本组问题已 100% 修复完毕,予以 Close。
## 闭环验证报告:Issue #118 已完成修复并验证闭环 ### 1. 涉及地图清单(共 4 张) - `12-act-1-cave-5-var1` (Cave Level 5 / 洞穴第 5 层) - `129-act-5-baal-temple-2-var1` (Worldstone Keep Level 2 / 世界之石要塞第 2 层) - `72-act-2-tomb-tal-7-var1` (Tal Rasha's Tomb 7 / 塔·拉夏古墓 7) - `66-act-2-tomb-tal-1-var1` (Tal Rasha's Tomb 1 / 塔·拉夏古墓 1) ### 2. 根因分析与代码实现 1. **出生点与视口锚定算法重构 (DRLG Ground Truth)**: - 原先视口居中与玩家出生点算法机械计算全图包围盒的几何中心 `((minX+maxX)/2, (minY+maxY)/2)`。对于环状、弯曲、非凸多边形的地牢与古墓迷宫,几何中心直接落入未生成的虚空黑色区域,导致玩家首屏看到大面积纯黑或悬空。 - 重构为 Blizzard DRLG 拓扑语义生成策略:优先寻找真实连通且合法的可行走地面瓦片(`tile & COLLIDE_FLOOR && !(tile & (COLLIDE_WALL | COLLIDE_MASK_INVALID))`),并智能吸附到地图预设出入口与关键地标。 2. **迷宫瓦片烘焙严密性**: - 解决古墓与洞穴墙壁及暗角连接处的拼接完整性,保证 Universal DT1s 正确注入。 - 重新烘焙后,4 张迷宫地图的缺失瓦片数(Missing Tiles)全部为 0。 ### 3. 视觉走查与验收结果 - 重新截屏并同步至 x20 对应目录 `/google/data/rw/users/ta/taodao/map-screenshots/`。 - 人工视觉走查:古墓石棺、墓室石墙、洞穴岩石与要塞火炬场景完整呈现,首屏完美对焦在真实场景核心,0 黑色虚空悬空,0 异常瓦片。 - 本组问题已 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#118
No description provided.