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

1.8 KiB
Raw Blame History

N-006 Blender Main 权威回写与恢复

状态:completed_current_scope

setFramesetObjectVisibilitysetModifierEnabled 现在直接更新持久化 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、原子保存和保存重开契约。

验收命令:

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"