Files
workinf_Blender_Wasm/docs/status/N-014.md
mes123456 0fe8d2bb56
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
Advance M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

2.3 KiB
Raw Blame History

N-014 NLA

状态:in_progressAction Clip Main/求值 + reverse/repeat 子集)

详细分解、AnimationIR strip/track、Main 编辑、原生 NLA 求值、UI、GLB 映射和验收命令见 docs/UNDECLARED_CAPABILITIES_EXECUTION_PLAN.md

本轮已交付 NlaTrackIR/NlaStripIR、Action 存在性、owner/path、稳定排序、不重叠、 range/scale/repeat/influence 一致性、blend/extrapolation 和 time-warp 阻断。SceneIR reader 可恢复 Track/Action Clip 摘要;setNLAStack 以整栈替换事务写 Blender Main并经过 undo 历史、保存重开和 frame 5 native depsgraph 求值。Action Clip reverse 已映射到 Blender NLASTRIP_FLAG_REVERSEreader 可恢复该标志;反向正例得到预期线性位置约 [0.555556, 1.111111, 1.666667]。 同一正例已扩为 repeat=2frame 5 与第二周期 frame 14 的 native Depsgraph 矩阵一致。

M10-11 另以桌面 Blender 5.2 生成只读 fixture同一 Track 包含 scale=2 的正向 Clip 和 reverse + repeat=2 的 Clip。桌面、Node WASM 与生产 Chromium Worker 在 12 个边界/周期帧上 逐矩阵比较,最大误差为 0每帧求值前后的 Track/Strip/Action JSON 完全一致。本切片不调用 setNLAStack,不提前关闭细粒度 operator 工作。

当前只支持单对象 Action Clip、正 scale、Replace/Add/Multiply/Combine 和有限外插。 M10-12 仅新增 moveNLAStrip,以 revision gate 和单次 Main transaction 保留时长移动现有 Clip 并已通过 undo/redo 与保存重开。Transition/Meta/Sound、Animated Time、Drivers、其余 create/remove/resize/active 命令、NLA UI、 骨骼/约束混合矩阵及 GLB 展开仍为 planned/结构化阻断。

M10-15 冻结 4,096 tracks、每 track 16,384 strips、总 65,536 strips 及 ID/name/reason 字节预算, 拒绝未声明字段。隔离 Chromium Worker 对 20 次 256-strip stack、超 track budget、恶意字段和 同会话小 stack 恢复分别建立 performance/OOM-prevention/malicious-input 门。

验收:npm --prefix web run test:nla-evaluation-goldennpm --prefix web run test:nla-operatornpm --prefix web run test:authoring-roundtripnpm --prefix web run test:capability-gatesnpm --prefix web run test:m10-domain-gates