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

1.5 KiB

W-038 Status

status: done_current_scope task: 实现场景增量

Implemented

web/protocol/scene-delta.ts defines revisioned node add/update/remove, active object/frame changes and mesh/material/camera/light/animation resources. diffSceneSnapshots emits changed node and resource fields; applySceneDelta rejects stale base revisions and returns sorted immutable node arrays. The native C ABI computes the same minimal delta whenever a new .blend is opened, and the Worker exposes it through the delta request after validating the envelope. The command registry covers scene/frame state, modifier switches, mesh editing, material/UV authoring, keyframes/constraints and object hierarchy operations. Each command mutates Blender Main and returns the corresponding revisioned delta through applyCommand.

Accepted bounded scope

SceneDelta now covers resource collections for meshes, materials, cameras, lights and animations in addition to nodes/frame/active object. Mesh payloads transfer separately so topology and attribute changes replace the associated resource envelope, while node-only changes stay in place. All declared authoring commands are Main-authoritative and covered by save/reopen. Fine- grained MeshGeometryDelta patches now transfer only changed byte ranges when field lengths stay stable; topology/attribute layout changes replace only the affected per-mesh envelope. The main-thread client applies patches immutably and retains unchanged mesh buffers.