docs: 文档审计——修正失效链接与过期结论
按 docs/ 目录逐篇核对,只改与事实/路径不符的部分,不动尚未验证的计划条目: - `docs/steps/**` 在早前整理时已迁到 `docs/reference/steps/**`,全仓的旧路径 引用(PLAN.md / README.md / M0-gr2-reader.md 及 libgr2 的头注释)一并改正。 - CLIENT-GAP.md / CLIENT-GAP-FIX.md / BACKLOG.md / MIDREVIEW.md:把已经落地的 条目从「待办」改为已完成,删掉与代码现状矛盾的描述。 - ANDROID-TESTING.md / CLIENT-PORT.md / CLIENT-ROADMAP.md / GODOT-POC-PLAN.md / SHINSOO-WORLD-RENDERING.md / PARITY-GAP.md:同上,另补当前实际的构建/测试入口。 - THIRD-PARTY.md:补齐实际在用的第三方来源与许可说明。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SJugvEJwz3FK4hw9ti3SRb
This commit is contained in:
+6
-2
@@ -1,5 +1,9 @@
|
||||
# Phase 1 中期评审 — mtgodot-poc
|
||||
# Phase 1 中期评审 — metin2-client(评审时仓库名 mtgodot-poc)
|
||||
|
||||
> **本文是一份定格的历史评审记录,不反映现状(2026-09-08 复核)。** 其中的规模数字尤其不要当现状读:
|
||||
> §2 说 `extension/src` ≈ 1997 行 / 6 个文件,实际现在是 **30029 行 / 68 个文件**(网络、世界渲染、
|
||||
> 资产管线都是评审之后加的)。现状看 [`BACKLOG.md`](./BACKLOG.md) 和 [`CLIENT-GAP.md`](./CLIENT-GAP.md)。
|
||||
>
|
||||
> 日期:2026-08-29(评审后又做了一轮收尾,见 §4/§5 的「已做」标注)· 平台:macOS(Apple M2)· Godot 4.7.1
|
||||
> · 对标 [`GODOT-POC-PLAN.md`](./GODOT-POC-PLAN.md) §00 Phase 1
|
||||
> 结论先行:**桥接层工程量小、风险已基本出清,建议进入 Phase 2(一加 13 / iPhone 16 三设备 bring-up,自用)**。M2.5 材质门禁已闭(贴图走 gr2 material 绑定 + 逐 tri_group 拆 surface);仅剩逐材质 oracle 纸面对拍这一可选项。
|
||||
@@ -51,7 +55,7 @@
|
||||
| ~~多材质槽内拆分~~ **→ 已做**:`gr2_bridge.cpp` 加 `build_parts()`,一个 gr2 mesh 有 N>1 个 `tri_groups` 就拆成 N 个 Godot surface(各自 material + 索引子区间)。`build_mesh` 和 CPU 蒙皮路径都按 `RenderPart` 走。shaman(1 mesh→2 surface)、assassin(17→18)实测各面贴图正确。 | 已做 |
|
||||
| ~~对拍未接线~~ **→ 已写 `test/compare.py`(2026-08-29)** | oracle gate(读 `test/m2-numeric.json`,libgr2 vs Granny 23/23 ≤6.5e-5)+ 每 case headless 跑 mtgodot,**判据**:进程退出码 0、截图存在、`surfaces>0`、动画 selfcheck `NaN/Inf=0`(CPU 与 GPU 两条路径各一遍)。产出 `.cpu.png`/`.gpu.png` + `test/compare-report.json`。渲染器 / 相机不同,不做与 bgfx-reference 的像素比。**缺**:带容差的自动视觉回归门禁(BACKLOG H3)。 | 基本完成 |
|
||||
| **性能** | 前台窗口 M2 重测(`test/godot-macos-stress.json`,默认 CPU LBS):1 角色 46fps、10 角色 36fps、30 角色 24fps。CPU 路径瓶颈是每帧 `cpu_mesh` 全量重建(不是 LBS 数学)。构建仍 ~170ms/角色(单线程无缓存)。**GPU 蒙皮着色器已实现**(`MTGODOT_GPUSKIN=1`,每帧只更新一张骨骼纹理),人群场景应切它 —— stress harness 未用 GPU 路径重跑。 | Phase 2:GPU 路径跑人群 bench + 多线程构建 + eterpack 共享资产 + 一加 13 / iPhone 16 实测。 |
|
||||
| 剩余小项 | ~~ShaderMaterial 静态 Shader 退出泄漏~~ 已修(`cleanup_material_shaders`,`register_types` 卸载时调)· alpha 排序 corner case(`render_priority` 粗排)· 背面剔除写死 `cull_back`(Metin2 有 `CULL_NONE` 面)· `_frame_model` 对披风类框选偏 | 均不阻塞,见 [`BACKLOG.md`](./BACKLOG.md)(`A3` `A6` `B10` `E5`)。法线用混合矩阵上 3×3 不逆转置 —— **与 Granny runtime 一致,是正确行为不是风险** |
|
||||
| 剩余小项 | ~~ShaderMaterial 静态 Shader 退出泄漏~~ 已修(`cleanup_material_shaders`,`register_types` 卸载时调)· alpha 排序 corner case(`render_priority` 粗排)· ~~背面剔除写死 `cull_back`(Metin2 有 `CULL_NONE` 面)~~ **已做(2026-09-08 复核)**:`m2_material.cpp:188-211` 已有 `cull_disabled` shader 变体,角色 / 武器 / 发型经 `decide_two_sided()` 驱动,见 `BACKLOG.md` B10 · `_frame_model` 对披风类框选偏 | 均不阻塞,见 [`BACKLOG.md`](./BACKLOG.md)(`A3` `A6` `B10` `E5`)。法线用混合矩阵上 3×3 不逆转置 —— **与 Granny runtime 一致,是正确行为不是风险** |
|
||||
|
||||
## 5. 建议
|
||||
|
||||
|
||||
Reference in New Issue
Block a user