1.8 KiB
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、原子保存和保存重开契约。
验收命令:
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"