35 lines
1.9 KiB
Markdown
35 lines
1.9 KiB
Markdown
# N-022 Tracking 与 Mask
|
||
|
||
状态:`BLOCKED`(资源 schema、真实 Mask Main reader、marker/mask 有界事务和 solve 能力门
|
||
已落地;MovieClip Main、写回、跟踪/相机求解、编辑器 overlay 与桌面 golden 未实现)
|
||
|
||
## 已验证切片
|
||
|
||
1. N-022-A:版本化 project schema 覆盖 MovieClip、Track/Marker、Plane Track、Camera
|
||
Solve metadata、Mask Layer/Spline/Point 及 compositor/scene binding。
|
||
2. N-022-A/B:clip 路径限制在项目内,source 与 solve 绑定 SHA-256;marker frame、
|
||
plane track 引用、mask point/handle、资源 binding、重复 ID 与总量预算都严格校验。
|
||
3. N-022-B(部分):marker upsert/delete、track selection、mask point 与 spline cyclic
|
||
修改使用 revision 事务,锁定项和 stale revision 会拒绝,提交后再次完整解析。
|
||
4. N-022-C(门):marker/mask schema edit 可用;browser tracking 只有显式 probe 成功后
|
||
放行,camera solve 保持 `BLOCKED` 并要求受验证的服务端 Blender。
|
||
5. N-022-A(部分):Blender 5.2 Mask Main reader 输出 layer、spline 和 Bezier point,保留
|
||
cyclic/fill、viewport visibility、lock/hide-select、opacity、handle type/坐标、feather 与
|
||
selection;1024 layer、100k spline、1M point 预算在分配前检查。MovieClip 不能从外部路径
|
||
推导内容 SHA-256,继续阻断而不使用路径散列冒充源摘要。
|
||
|
||
## 仍然阻断
|
||
|
||
- N-022-A/B:真实 MovieClip reader、Mask/MovieClip 写回、undo/redo 和 save/reopen;Mask reader
|
||
已完成。
|
||
- N-022-C:浏览器 tracking 实现、完整 camera/plane solve 与服务端 job/hash 提交。
|
||
- N-022-D:Clip/Mask editor、overlay、selection/raycast 和 compositor/scene 实际绑定。
|
||
- N-022-E:desktop solve/error golden、媒体故障和 Chromium 测试。
|
||
|
||
## 验收
|
||
|
||
```bash
|
||
WEB_TEST_PORT=5322 npm --prefix web run test:e2e -- --grep "N-022 tracking"
|
||
npm --prefix web run test:mask-main-reader
|
||
```
|