31 lines
1.8 KiB
Markdown
31 lines
1.8 KiB
Markdown
# N-006 Blender Main 权威回写与恢复
|
||
|
||
状态:`completed_current_scope`
|
||
|
||
`setFrame`、`setObjectVisibility`、`setModifierEnabled` 现在直接更新持久化
|
||
Blender Main;保存通过非 undo 的标准 write-file callback 写出内存 `.blend`。动画与 Pose
|
||
constraint fixture 已连续执行两代保存/重开,并在 1/5/10 帧比较网格、world matrix 和 bone
|
||
pose matrix。权威 Main dirty 后的 Depsgraph 现在直接使用 writer 输出,不再回退原始 reader
|
||
buffer。当前协议命令集中的 frame、visibility、modifier 开关和无 skin/shape-key 的
|
||
`decimateMesh` 均回写 Main。decimate 会重建三角 Mesh,并保存 UV、corner color 和 material
|
||
index;Collapse/Un-Subdivide/Dissolve 都经过保存门。带 skin/shape-key 的 decimate 继续保持
|
||
snapshot-only,保存返回 `BLEND_WRITE_REQUIRES_MAIN_AUTHORITY`,不会丢失 Key/vertex-group 后
|
||
伪造成功。
|
||
|
||
历史项现同时保存 SceneIR 与可重开的 Main buffer;Main 命令 undo/redo 后可立即保存,撤销
|
||
snapshot-only 状态会恢复权威性。OPFS 保存使用 SHA-256、staging、journal、提交后复验和
|
||
manifest;新 Worker 可从 staging 后或 scene commit 后两种故障点恢复,并串行化同项目的并发
|
||
保存。AutosaveScheduler 复用同一事务。N-007/W-080 新增的 Mesh Edit、UV、材质、packed
|
||
image、动画、约束、层级、Collection、Join/Separate、Apply Transform 和 Origin 已全部复用
|
||
Main mutation、undo/redo、原子保存和保存重开契约。
|
||
|
||
验收命令:
|
||
|
||
```bash
|
||
node tools/web/run-web-engine-smoke.mjs
|
||
bash tools/web/check-dual-engine.sh
|
||
npm --prefix web run test:main-roundtrip
|
||
npm --prefix web run test:authoring-roundtrip
|
||
WEB_TEST_PORT=5193 npm --prefix web run test:e2e -- --grep "atomic|journal|concurrent saves"
|
||
```
|