[Parity][render][S1][H][R] 光源:数据表驱动的光源全部缺失,同时到处是自造的光源和系数 #606
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
来源审计项:
render#5— [S1][H][R] 光源:数据表驱动的光源全部缺失,同时到处是自造的光源和系数src/client/view/unit-drawables.ts:394-400、:422、:427-437unit-drawables.ts:486-504unit-drawables.ts:535-545(强度 190)unit-drawables.ts:607-628(215 / 210)src/client/scene/lighting-presets.ts:243-257、:271-279buildSceneDrawables只为 missile、overlay、cast 生成pointLights)objects.txt#59 Portal(TP) Lit1 18 / Lit2 19,RGB 120,120,255,Flicker 1;#60 Portal(PP) RGB 255,120,120;#39 fire Lit1/Lit2 19,255,236,176,Flicker 1;#119 Waypoint Lit1 18 / Lit2 19,100,100,255,Flicker 1。这些光源(按模式 Lit0-7,带 Flicker)完全没有实现。monstats2.txt#156 andariel Light 8,#211 duriel Light 9(light-r/g/b 255)。没有实现。missiles.txt#90 nova、#119 frostnova、#118 poisonnova 的 Light 为空(poisonnova 的 RGB 甚至是 0,0,0),代码却因为trans===1给它们造了半径 6×2=14 的光;#59 icebolt RGB 81,81,255,被钳成 120,175,255;Flicker 列(#56 chargedbolt 4、#69 firewall 4)被忽略。仓库文档docs/lighting_reverse_engineering_113c.md:116写明 missile 光"直接读 Missiles.txt Light/Red/Green/Blue",没有 ×2、下限 14、冷色钳制。:114写"基础半径 10–13 sub-tile + 物品 STAT_LIGHTRADIUS",:117写"闪烁每 25Hz 逻辑帧 ±1 sub-tile"(文档自述来自 D2Client 反汇编,地址未复核)。LightGrid的 radius 单位就是 sub-tile(common/drlg/light-grid.ts:53-70),所以 20/22 约为文档值的 2 倍;sin 闪烁、强度 242、暖色 255,234,196 都没有出处(?)。envIntensity缺失时回退 255(L243)。均无出处(?)。max(12, Radius)违反了 overlay.txt 的 Radius(大量为 6);InitRadius 未使用;强度 210 无出处。'auto'(settings/client-settings.ts:58、:71),不影响默认游玩,但auto下的isDarkCave启发式(L245)同样是自造的。objects.txtLit{mode} + RGB + Flicker 建光源;怪物按monstats2.txtLight + light-r/g/b;missile 按missiles.txtLight / Flicker / RGB 原值(没有 Light 就不发光);overlay 按 Radius / InitRadius / RGB 原值。STAT_LIGHTRADIUS,先逆向确认(待确认 #4)。max(...)下限、×2、冷色钳制和自造的强度常量。Resolved in commit 56f4f7f: Authentic 1.13c data-driven point lights from objects, monstats2, missiles, and overlay tables. Player base radius aligned to 11 sub-tiles + STAT_LIGHTRADIUS without arbitrary inflation or fake sine flicker.