渲染:实装动态光影与照明遮罩渲染系统(Dynamic Lighting & Light Mask System) #395

Closed
opened 2026-09-23 06:11:41 +00:00 by troytt · 0 comments
Owner

背景与现状说明 (Follow-up of #386)

在暗黑破坏神 II (v1.13c) 体系中,技能施法特效(Cast Overlay)、飞行道具(Missiles 如火弹、火球)、场景物件(火炬 Torch、篝火 Bonfire)以及角色自身,均具备动态照明属性(在 Overlay.txt、Missiles.txt 中配置有 Radius / InitRadius 以及 Red, Green, Blue 等点光源参数)。

在此前 #386 施法覆盖特效落地时,曾尝试通过调用 renderer.drawSolid 绘制双层叠加矩形来模拟点光源光晕。然而因为目前 Web 引擎尚未实装真正的动态光影/光照系统(如基于物理或径向衰减的 Light Mask / Radial Falloff 光照通道),导致在施法动画播放时,角色脚下会出现两个锐利的半透明矩形色块(Translucent Solid Boxes),视觉体验突兀且不符合原版 2.5D 光照质感。

目前已在后续修复中移除了该临时半透明实心方块,使施法动画恢复纯净的自发光 DCC 精灵叠加渲染(Additive Blending)。本 Issue 用于跟踪并统一设计后续真正的动态光影与照明渲染系统。


需求与设计目标

  1. 真实径向与遮罩光照(Radial Lightmap & Falloff):

    • 避免使用任何轴对齐几何实心方块(drawSolid)模拟光源。
    • 实现平滑径向衰减(Radial Gradient Falloff)或 2.5D 光照贴图(Lightmap Pass),呈现自然的明暗过渡与柔和边缘。
  2. 全局光照管道统一(Lighting Pipeline):

    • 施法特效(Cast Overlays):读取 Overlay.txt 的 Radius、Red、Green、Blue,在法术吟唱/生效期间投射对应属性的动态光晕。
    • 飞弹特效(Missiles):支持飞弹移动过程中的动态移动光源(如火球飞行时照亮沿途地面与墙体)。
    • 场景动态光源(Scene Torches & Campfires):营地火炬、篝火等静态/动态物件的环境光照与摇曳效果。
    • 地牢与暗夜环境(Darkness & Ambience):地牢/暗室/夜晚中环境光减弱,仅由角色光环和光源照亮周围视野。
  3. 混合与渲染架构设想:

    • 方案 A(离屏光照纹理 / Multi-Pass Lightmap):在离屏 FBO 渲染所有光源的径向衰减光斑(Additive 叠加),然后以 Multiply 或自定义着色器合成到底层场景上。
    • 方案 B(D2 原版 1.13c 瓦片顶点/调色板光照网格):按暗黑原版 5×5 瓦片网格计算各点光照强度与色彩,通过调色板查找表(PL2 light table)或着色器直接调节瓦片与物件的明暗。
## 背景与现状说明 (Follow-up of #386) 在暗黑破坏神 II (v1.13c) 体系中,技能施法特效(Cast Overlay)、飞行道具(Missiles 如火弹、火球)、场景物件(火炬 Torch、篝火 Bonfire)以及角色自身,均具备动态照明属性(在 `Overlay.txt`、`Missiles.txt` 中配置有 `Radius` / `InitRadius` 以及 `Red`, `Green`, `Blue` 等点光源参数)。 在此前 #386 施法覆盖特效落地时,曾尝试通过调用 `renderer.drawSolid` 绘制双层叠加矩形来模拟点光源光晕。然而因为目前 Web 引擎尚未实装真正的动态光影/光照系统(如基于物理或径向衰减的 Light Mask / Radial Falloff 光照通道),导致在施法动画播放时,角色脚下会出现两个锐利的半透明矩形色块(Translucent Solid Boxes),视觉体验突兀且不符合原版 2.5D 光照质感。 目前已在后续修复中移除了该临时半透明实心方块,使施法动画恢复纯净的自发光 DCC 精灵叠加渲染(Additive Blending)。本 Issue 用于跟踪并统一设计后续真正的动态光影与照明渲染系统。 --- ## 需求与设计目标 1. **真实径向与遮罩光照(Radial Lightmap & Falloff)**: - 避免使用任何轴对齐几何实心方块(`drawSolid`)模拟光源。 - 实现平滑径向衰减(Radial Gradient Falloff)或 2.5D 光照贴图(Lightmap Pass),呈现自然的明暗过渡与柔和边缘。 2. **全局光照管道统一(Lighting Pipeline)**: - **施法特效(Cast Overlays)**:读取 `Overlay.txt` 的 `Radius`、`Red`、`Green`、`Blue`,在法术吟唱/生效期间投射对应属性的动态光晕。 - **飞弹特效(Missiles)**:支持飞弹移动过程中的动态移动光源(如火球飞行时照亮沿途地面与墙体)。 - **场景动态光源(Scene Torches & Campfires)**:营地火炬、篝火等静态/动态物件的环境光照与摇曳效果。 - **地牢与暗夜环境(Darkness & Ambience)**:地牢/暗室/夜晚中环境光减弱,仅由角色光环和光源照亮周围视野。 3. **混合与渲染架构设想**: - **方案 A(离屏光照纹理 / Multi-Pass Lightmap)**:在离屏 FBO 渲染所有光源的径向衰减光斑(Additive 叠加),然后以 `Multiply` 或自定义着色器合成到底层场景上。 - **方案 B(D2 原版 1.13c 瓦片顶点/调色板光照网格)**:按暗黑原版 5×5 瓦片网格计算各点光照强度与色彩,通过调色板查找表(PL2 light table)或着色器直接调节瓦片与物件的明暗。
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#395
No description provided.