feat(wilderness): 完善地表边缘过渡瓦片(Auto-Tiling)与 DRLGROOMTILE_GetTileCache 权重混合 #70

Closed
opened 2026-09-18 01:10:41 +00:00 by troytt · 0 comments
Owner

背景

在原版暗黑 2 的地表渲染中,DRLGROOMTILE_GetTileCache 是地貌质感的核心:

  1. 多 DT1 权重随机:根据 Levels.txt 的 dwDt1Mask,扫描所有激活的 DT1 地面库,依据瓦片自带的 Rarity 字段进行加权随机,产生活跃且斑驳的自然底土效果;
  2. 边缘羽化过渡(Auto-Tiling / Transition Tiles):不同地貌接触面(如道路与草地、沙漠沙地与裸岩、雪原与冻土泥泞、水坑与河岸)拥有专用的 4 邻域/8 邻域过渡瓦片(Edge / Transition Tiles),用于消除地貌交界处的阶梯硬切。

当前 Web 引擎在 M15 中实现了基础的多 DT1 加权填充(fillGround),但交界处的羽化过渡机制仍未完全还原,导致部分道路或水体边缘呈现锯齿状或生硬切面。


改造内容

  1. 解析 DT1 边缘过渡瓦片类型与朝向掩码:
    • 提取 DT1 中用于边缘过渡(Transition Tile Types)的方向标志位。
  2. 实现地表接触面自动过渡算法(Auto-Tiling):
    • 在道路边缘、水坑周边、沙石与草地交界带,自动计算邻域掩码并铺设对应的过渡瓦片。
  3. 彻底对齐原版 DRLGROOMTILE_GetTileCache 的地表生成质感。

验收标准

  • 野外地面过渡平滑自然,道路/草地/沙地边缘均有正确的原版羽化过渡瓦片
  • 零缺失瓦片或错位瓦片(verify:generators 瓦片缺失率保持 0.00%)
  • 现有地表混合测试(tests/wilderness-ground-blend.test.ts)全部通过
  • npm run typecheck 零错误,npx vitest run 全绿
## 背景 在原版暗黑 2 的地表渲染中,`DRLGROOMTILE_GetTileCache` 是地貌质感的核心: 1. **多 DT1 权重随机**:根据 `Levels.txt` 的 `dwDt1Mask`,扫描所有激活的 DT1 地面库,依据瓦片自带的 `Rarity` 字段进行加权随机,产生活跃且斑驳的自然底土效果; 2. **边缘羽化过渡(Auto-Tiling / Transition Tiles)**:不同地貌接触面(如道路与草地、沙漠沙地与裸岩、雪原与冻土泥泞、水坑与河岸)拥有专用的 4 邻域/8 邻域过渡瓦片(Edge / Transition Tiles),用于消除地貌交界处的阶梯硬切。 当前 Web 引擎在 M15 中实现了基础的多 DT1 加权填充(`fillGround`),但交界处的羽化过渡机制仍未完全还原,导致部分道路或水体边缘呈现锯齿状或生硬切面。 --- ## 改造内容 1. **解析 DT1 边缘过渡瓦片类型与朝向掩码**: - 提取 DT1 中用于边缘过渡(Transition Tile Types)的方向标志位。 2. **实现地表接触面自动过渡算法(Auto-Tiling)**: - 在道路边缘、水坑周边、沙石与草地交界带,自动计算邻域掩码并铺设对应的过渡瓦片。 3. **彻底对齐原版 `DRLGROOMTILE_GetTileCache` 的地表生成质感**。 --- ## 验收标准 - [ ] 野外地面过渡平滑自然,道路/草地/沙地边缘均有正确的原版羽化过渡瓦片 - [ ] 零缺失瓦片或错位瓦片(`verify:generators` 瓦片缺失率保持 0.00%) - [ ] 现有地表混合测试(`tests/wilderness-ground-blend.test.ts`)全部通过 - [ ] `npm run typecheck` 零错误,`npx vitest run` 全绿
troytt added this to the [M16] 野外生成器原版一致性:还原 Blizzard DRLG 原生机制 milestone 2026-09-18 01:10:41 +00:00
Sign in to join this conversation.
No Label
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#70
No description provided.