Files
workinf_Blender_Wasm/docs/WEB_FULL_FEATURE_GAP_INVENTORY.md
mes123456 e2e81c7c00
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
feat(web): classify and route complete Blender inventory
2026-09-06 21:10:31 +08:00

4.4 KiB

Web Blender 全功能缺口盘点

盘点基线:tests/golden/WBV2/dynamic-inventory.json、 tests/golden/WBV2/dynamic-coverage-bindings.json、当前 WebEngine 协议/能力注册表。

当前结论

直接 WebEngine 命令已经全部进入协议和原生分发:96/96 web-command 均有绑定。节点注册也已完成共享 reader 覆盖:497/497 node。因此 16/16 工作流完成只表示产品主路径已接通,不表示 Blender 的所有用户能力 已经迁移。

当前仍未绑定的源单元:

类型 总量 已绑定 未绑定 处理策略
编辑器 operator 2018 31 1987 按用户能力批量迁移;窗口/屏幕/文件浏览器改用 Web 等价流程
RNA struct 979 306 673 建立 Main 数据块反射/读写批次,先覆盖用户可编辑数据
node 497 497 0 共享图 reader 已覆盖,后续只补具体用户入口缺口
modifier source 97 95 2 将剩余 modifier 接入统一栈参数模型
operator macro 58 0 58 拆解为已有原生命令组合,不复制桌面上下文
WebEngine command 96 96 0 保持现有协议/Worker/Main 契约

Operator 缺口热点

未绑定 editor operator 按源码注册文件聚合后的最大缺口:

源码区域 数量 后续批次
editors/object/object_ops.cc 212 OBJECT-EDITOR-COVERAGE
editors/mesh/mesh_ops.cc 140 MESH-EDITOR-COVERAGE
editors/space_sequencer/sequencer_ops.cc 98 SEQUENCER-COMPOSITOR-COVERAGE
editors/physics/physics_ops.cc 82 PHYSICS-SIMULATION-COVERAGE
editors/curve/curve_ops.cc 78 CURVE-SURFACE-COVERAGE
editors/armature/armature_ops.cc 77 ARMATURE-EDITOR-COVERAGE
editors/space_clip/space_clip.cc 77 TRACKING-MASK-COVERAGE
editors/space_node/node_ops.cc 77 SEQUENCER-COMPOSITOR-COVERAGE
editors/space_outliner/outliner_ops.cc 73 ASSET-LIBRARY-COVERAGE
editors/sculpt_paint/paint_ops.cc 69 SCULPT/PAINT follow-up
editors/space_graph/graph_ops.cc 66 ANIMATION-FCURVE-DRIVER-COVERAGE
editors/space_view3d/view3d_ops.cc 63 OBJECT/MESH/RENDER batches
editors/render/render_ops.cc 50 RENDER-CAMERA-LIGHT-COVERAGE
editors/uvedit/uvedit_ops.cc 48 MESH-EDITOR-COVERAGE
editors/grease_pencil/** 42 GREASE-PENCIL-COVERAGE

Window manager, screen, interface, text editor and native file-browser operators remain explicit browser/OS boundaries. They are not claimed as missing Web features when a browser-native equivalent exists.

Implementation order

  1. User-visible authoring gaps that reuse existing Main transactions: object, mesh, curve, armature, animation, sequencer, physics.
  2. Browser-native media/data workflows: tracking, masks, Grease Pencil, render, asset libraries and interchange.
  3. Generic RNA reflection for the remaining data-block fields.
  4. Macro decomposition and operator catalog expansion only where a real Web workflow exists; no arbitrary desktop-context emulation.

Verification remains incremental and deferred to user operation. No completion claim is made from inventory counts alone.

Source-unit route dashboard

featureRouteCoverage publishes the complete route assignment for the current 3,745-unit source inventory. featureRouteGaps publishes route-assignment gaps, unavailable units, and the separate behavioral-evidence gap. The scheduler JSON summary exposes both command names under progress; its text view prints the same category counts.

execution route source units production boundary
WEB_MAIN 1,698 typed native Main/WASM or shared reflection route
SERVER_NATIVE 1,613 bounded Blender background operator job
BROWSER_EQUIVALENT 434 browser-native replacement for desktop UI/context
UNAVAILABLE 0 no Web platform equivalent
total 3,745 all source units have an explicit route classification

Route assignment is complete. Existing exact evidence remains 1,025 verified units, while 2,720 units retain explicit UNVERIFIED behavioral evidence until real user operation exercises the declared route. The dashboard does not convert classification into a completion claim. WEB_MAIN behavior must continue through existing typed Blender Main/WASM commands, and SERVER_NATIVE behavior through bounded Blender jobs.