Files
workinf_Blender_Wasm/docs/status/N-006.md
2026-08-12 04:47:48 -04:00

31 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
indexCollapse/Un-Subdivide/Dissolve 都经过保存门。带 skin/shape-key 的 decimate 继续保持
snapshot-only保存返回 `BLEND_WRITE_REQUIRES_MAIN_AUTHORITY`,不会丢失 Key/vertex-group 后
伪造成功。
历史项现同时保存 SceneIR 与可重开的 Main bufferMain 命令 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"
```