Advance Blender WebEngine N-015 through N-022 parity
This commit is contained in:
@@ -7,9 +7,9 @@
|
||||
## 当前声明
|
||||
|
||||
当前声明覆盖 Blender 5.2 `.blend` 中有限非 Mesh 数据的稳定识别、Main 权威写回、undo/redo、
|
||||
保存重开、真实 evaluated mesh 报告和 WNM 二进制分块。Curve cyclic/handle 目前只有有界
|
||||
属性读写,未声明完整 topology editor、handle/cyclic gizmo、VDB 体渲染、完整 USD loss
|
||||
fixture 或跨浏览器性能等价。
|
||||
保存重开、真实 evaluated mesh 报告和 WNM 二进制分块。Curve cyclic/handle 已有有界
|
||||
属性读写、多目标选择和单事务平移提交,未声明完整 topology editor、连续 gizmo preview、
|
||||
VDB 体渲染或完整 Volume USD loss fixture。
|
||||
|
||||
| 数据族 | Reader | Web 预览 | 当前门 |
|
||||
| --- | --- | --- | --- |
|
||||
@@ -45,14 +45,15 @@ fixture 或跨浏览器性能等价。
|
||||
Metaball element 写回,以及 bounded Poly Curve create、delete、1D Poly/Bezier/NURBS conversion、
|
||||
二维 Surface U/V dimensions/order/rational weight 网格替换和 Curve/Surface/Font/Metaball 数据块
|
||||
重命名;一维多 spline 创建/删除/重排和批量 handle/cyclic 已由单个原子 Main 事务覆盖。
|
||||
多 handle 选择拖拽/gizmo UI 仍阻断。单用户、undo/redo、save/reopen 由
|
||||
多 handle 选择、高亮和有界平移已由单个 Main transaction 覆盖,连续拖拽 preview 与
|
||||
handle 专用 gizmo UI 仍阻断。单用户、undo/redo、save/reopen 由
|
||||
`check-nonmesh-roundtrip.mjs` 验证。
|
||||
9. 主线程与 OffscreenCanvas 对 PointCloud/Curve 控制点和 Bezier handle 代理提供 bounded raycast,并对 Mesh 的
|
||||
VERT/EDGE/FACE 使用一致的三角顶点、边索引解析,回传既有 selection callback;完整
|
||||
gizmo、跨对象 selection history 与精确范围 patch 仍未声明;新增 local bounded selection
|
||||
history 仅用于 revision/stale-hit 门和撤销栈验收。Bezier 左/右 handle 现以全局控制点映射
|
||||
独立拾取,轴向 gizmo 通过精确 Main 命令写回并通过 undo/redo、save/reopen;多选拖拽、跨对象
|
||||
history 和 range patch 仍未声明。
|
||||
VERT/EDGE/FACE 使用一致的三角顶点、边索引解析,回传既有 selection callback。selection
|
||||
history schema 2 覆盖跨对象、多 data block、多 element kind、revision/stale-hit、undo/redo
|
||||
和有界 selected/unselected range patch,并兼容 schema 1。Bezier 左/右 handle 以全局控制点
|
||||
映射独立拾取;多 handle 选择、高亮和有界平移经精确 Main 命令写回并通过 undo/redo、
|
||||
save/reopen。完整连续 gizmo preview 仍未声明。
|
||||
10. `queryNonMeshCapability(dataId)` 返回 N-015 `READY/BLOCKED` 与机器可读错误码;GLB 对未求值
|
||||
非 Mesh 拒绝导出。Font/Metaball/二维 NURBS Surface 的 depsgraph 三角网格与 Curve 的
|
||||
evaluated edge line primitive 已通过 GLB 导出和 Blender 5.2 桌面回导几何校验;零三角且零边的结果仍返回
|
||||
@@ -68,12 +69,13 @@ fixture 或跨浏览器性能等价。
|
||||
## 后续分解
|
||||
|
||||
1. N-015-B3:接入真实 OpenVDB decoder 与体素纹理/射线步进;在此之前保持 Volume renderer 阻断。
|
||||
2. N-015-C1:多 handle 选择拖拽与 gizmo UI;多 spline 创建/删除/重排、批量 handle/cyclic
|
||||
editor transaction 和二维 Surface U/V topology/order/rational weight 网格替换已完成。
|
||||
2. N-015-C1:连续多 handle 拖拽 preview 与专用 gizmo UI;多 handle 选择、高亮、单事务平移、
|
||||
多 spline 创建/删除/重排、批量 handle/cyclic editor transaction 和二维 Surface U/V
|
||||
topology/order/rational weight 网格替换已完成。
|
||||
3. N-015-C2:任意外部路径的新字体导入与资源沙箱;已有/packed VFont 的四 style link Main
|
||||
写回、字符级样式、kern/material 与 textbox 已完成并通过 PFB desktop/WASM golden。
|
||||
4. N-015-D1:跨对象 selection history、多 handle 拖拽和 SceneDelta range patch;左右 handle
|
||||
identity raycast、单 handle 轴向 gizmo/Main 写回已完成。
|
||||
4. N-015-D1:跨对象 selection history、多目标 element identity、range patch、左右 handle
|
||||
raycast 和多 handle Main 写回已完成;连续拖拽 preview 归入 C1 阻断。
|
||||
5. N-015-D2:evaluated preview 与源控制笼分层显示、WebGPU 等价。
|
||||
6. N-015-E1:补齐 Volume 的完整 loss fixture;PointCloud/Curves/Hair、Curve line bake、真实
|
||||
4x4 NURBS Surface mesh、desktop geometry golden、7 对象 GLB 与 USDA desktop round-trip 已通过。
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# N-016 Grease Pencil
|
||||
|
||||
状态:`BLOCKED`(协议、有限 reader 和有限 Main transaction 已落地;完整 2D/3D 编辑器、onion skin、modifier 语义和桌面 golden 仍阻断)
|
||||
状态:`BLOCKED`(协议、有限 reader/Main transaction、当前帧及相邻帧 onion preview 已落地;
|
||||
完整 2D/3D 编辑器、modifier 语义和桌面 golden 仍阻断)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
@@ -15,13 +16,14 @@
|
||||
`setGreasePencilStrokes` transaction(空 stroke 数组用于擦除)。命令要求单用户数据块,
|
||||
使用既有 authoritative Main、undo/redo 和 save/reopen 流程。
|
||||
4. N-016-C(部分):radius、opacity、vertex color、cyclic stroke 和 material index
|
||||
已读写;onion skin 仅输出 layer 状态,不声明时间邻帧渲染。
|
||||
已读写;开启 layer onion skin 时只取最近前一帧和后一帧,使用独立色调、透明材质和关闭
|
||||
depth write 的有界 preview,当前 drawing 不被替换。
|
||||
5. N-016-D(部分):共享 Three.js 适配器按当前 frame 选择每个可见 layer 最近的有效
|
||||
drawing,渲染真实 3D stroke/闭环;Chromium 主线程与 OffscreenCanvas 均通过非空像素门。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
- N-016-C:material datablock 事务、onion skin preview 和完整 Grease Pencil modifier reader。
|
||||
- N-016-C:material datablock 事务、onion fade/range 完整语义和完整 Grease Pencil modifier reader。
|
||||
- N-016-D:2D editor、stroke/point selection、timeline/dope integration、gizmo 和 worker restart;
|
||||
3D current-frame stroke viewport 已完成。
|
||||
- N-016-E:desktop drawing hash、Chromium 像素 golden、GLB/USD loss report 和 OPFS。
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# N-017 Paint 与权重
|
||||
|
||||
状态:`BLOCKED`(stroke/patch schema、Main 顶点色/权重 transaction 已落地;真实命中、texture paint 和 GPU/image 生命周期未实现)
|
||||
状态:`BLOCKED`(stroke/patch schema、真实 Three raycast 命中、Main 顶点色/权重 transaction
|
||||
已落地;PBVH brush、texture paint 和 GPU/image 生命周期未实现)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
@@ -14,10 +15,14 @@
|
||||
写入/移除 `MDeformWeight`,支持逐顶点 normalize。
|
||||
5. 顶点色和权重都已通过 Main undo/redo 与 `.blend` save/reopen;`mirror:true` 在没有已验证
|
||||
对称拓扑映射时返回 `CAPABILITY_MISSING`,不会伪造镜像结果。
|
||||
6. `paintHitFromIntersection` 消费真实 Three `Raycaster` intersection,按 indexed/non-indexed
|
||||
triangle 解析顶点,输出对象/data stable ID、source face、局部 barycentric、世界法线、
|
||||
插值 UV 与 pressure;测试使用真实 BufferGeometry 射线,不注入伪命中。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
- N-017-A:真实 PBVH/UV raycast 与 brush falloff 对桌面语义的对应。
|
||||
- N-017-A:PBVH 加速结构、遮挡/背面选择和 brush falloff 对桌面语义的对应;基础 Mesh/UV
|
||||
raycast hit 已完成。
|
||||
- N-017-B:limit/clean、已验证拓扑映射上的 mirror、桌面 brush/falloff 对照。
|
||||
- N-017-C:packed/UDIM tile transaction、色彩空间、dirty tile 和原子保存。
|
||||
- N-017-D/E:armature golden、seam bleed、mask/selection、GPU dispose、quota、坏图和 UI。
|
||||
|
||||
@@ -12,8 +12,10 @@ cache playback、WASM solver 和 bake job 未实现)
|
||||
有界设置摘要、依赖 stable ID 和 desktop bake cache;系统依赖环、重复依赖和超预算拒绝。
|
||||
3. N-018-C(门):cache 绑定 source blend/settings/input/cache SHA-256、帧范围和实际已缓存帧;
|
||||
`COMPLETE` 必须逐帧连续,frame seek 只返回精确命中帧,禁止复用相邻错误帧。
|
||||
4. 单 manifest 上限 4096 systems、每系统 1024 dependencies、256 settings/64 KiB、
|
||||
100k frames。
|
||||
4. Simulation cache 在 Worker restart 后重新验证整包;帧级读取在 OPFS 使用目标 range、
|
||||
IndexedDB 使用有界 slice,并再次校验该帧 SHA-256,越界帧返回 `SIMULATION_CACHE_MISSING`。
|
||||
5. 单 manifest 上限 4096 systems、每系统 1024 dependencies、256 settings/64 KiB、
|
||||
100k frames;单帧 512 MiB、整包 16 GiB,分配和 range 计算前检查安全整数及预算。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# N-019 灯光与渲染
|
||||
|
||||
状态:`BLOCKED`(Camera/Light/World/Scene metadata、Light/World 有界 Main 写回与
|
||||
Three exposure/shadow 映射已落地;完整 Camera/颜色管理 writer 和渲染等价未实现)
|
||||
状态:`BLOCKED`(Camera/Light/World/Scene metadata、Camera/Light/World 有界 Main 写回与
|
||||
Three exposure/shadow 映射已落地;Scene 颜色管理 writer 和渲染等价未实现)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
@@ -15,11 +15,14 @@ Three exposure/shadow 映射已落地;完整 Camera/颜色管理 writer 和渲
|
||||
不再被 Three 强制打开。
|
||||
4. 白平衡读取有完整性门:Main Light/World 重写若导致 Blender 5.2 tint 序列化为异常近零值,
|
||||
不暴露垃圾数值而返回 `whiteBalanceStatus: BLOCKED`。
|
||||
5. Camera 严格白名单写回覆盖 Perspective/Orthographic、lens/sensor/sensor fit、shift、clip、
|
||||
ortho scale 和 DOF enable/focus distance/f-stop/blades/rotation/ratio;near/far 与范围在修改前
|
||||
拒绝,已通过 undo/redo 和 save/reopen。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
- N-019-A:Camera 与 Scene color-management writer;直接 DNA 写入会破坏 white balance,
|
||||
必须改接 Blender/RNA 颜色管理 API 后才能开放。
|
||||
- N-019-A:Scene color-management writer;直接 DNA 写入会破坏 white balance,必须改接
|
||||
Blender/RNA 颜色管理 API 后才能开放。Camera writer 已完成。
|
||||
- N-019-B/C:AgX/Standard/Raw 的视觉等价、temperature 颜色、Area spread、Mist、DOF、
|
||||
transparent sorting、probe 和高级 shadow 参数。
|
||||
- N-019-D:Cycles/Freestyle/denoise 服务端 job 协议与结果 hash。
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# N-020 Compositor
|
||||
|
||||
状态:`BLOCKED`(GraphIR 与有界 CPU executor 已落地;真实 Main graph、WebGPU、HDR golden
|
||||
和服务端执行未实现)
|
||||
状态:`BLOCKED`(GraphIR、有界 CPU executor 与真实 Main graph 结构 reader 已落地;完整节点
|
||||
参数映射、WebGPU、HDR golden 和服务端执行未实现)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
@@ -14,10 +14,15 @@
|
||||
16M pixels、256 MiB image 和 100M blur operations;分配前检查,支持 worker cancellation。
|
||||
4. N-020-D(门):Unsupported node 保留 Blender type metadata,并返回
|
||||
`COMPOSITOR_NODE_UNSUPPORTED`,不会删节点后继续运行。
|
||||
5. N-020-A(部分):Blender 5.2 Scene `compositing_node_group` 从真实 Main 快照读取稳定 node
|
||||
identifier、socket identifier 和 link;活动 Group Output/旧 Composite 映射为 Composite,
|
||||
Viewer 和常量 RGBA 映射到已验证节点,其他节点原样保留 `blenderType` 为 Unsupported。
|
||||
4096 nodes/16384 links、重复 destination、缺 output 或不可读 node tree 返回 blocked status。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
- N-020-A:从真实 Main 读取/写回 compositor node tree、socket defaults、Render Layer pass。
|
||||
- N-020-A:Main graph 写回,以及 Transform/Invert/Exposure/Alpha Over/Blur/Mix/Image/Render Layer
|
||||
的逐节点参数与 resource/pass reader;基础真实图结构、常量色、Viewer/Composite 已完成。
|
||||
- N-020-B/C:WebGPU executor、tile/frame cache、增量 invalidation 和 GPU dispose。
|
||||
- N-020-D:服务端 Blender job、source hash 和结果提交。
|
||||
- N-020-E:desktop HDR/alpha/color-space golden、OOM/fault/device-loss。
|
||||
@@ -26,4 +31,5 @@
|
||||
|
||||
```bash
|
||||
WEB_TEST_PORT=5320 npm --prefix web run test:e2e -- --grep "N-020 CPU compositor"
|
||||
npm --prefix web run test:compositor-main-reader
|
||||
```
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# N-021 Sequencer 与音频
|
||||
|
||||
状态:`BLOCKED`(strip schema、确定性时间编辑和 codec 能力门已落地;真实 Main
|
||||
写回、媒体解码/渲染、音频波形和服务端编码仍未实现)
|
||||
状态:`BLOCKED`(strip schema、真实 Main reader、确定性时间编辑和 codec 能力门已落地;
|
||||
Main 写回、媒体解码/渲染、音频波形和服务端编码仍未实现)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
@@ -14,11 +14,15 @@
|
||||
映射,避免左右片段复用越界源帧。
|
||||
4. N-021-C/D(门):运行时只报告 WebCodecs/HTMLMedia 需要精确 probe;codec 必须
|
||||
出现在已验证 MIME 集合中才可放行,本地编码固定为 `BLOCKED`。
|
||||
5. N-021-A(部分):Blender 5.2 `Scene.ed/Editing.seqbase` 读取 Scene、Movie、Image、Sound、
|
||||
Meta 和协议支持的 Effect;显示范围由持久 `start/startofs/endofs/len` 计算,保留 channel、
|
||||
mute/lock、相对媒体路径、24/1.001 FPS 和 effect input stable ID。绝对路径、未知类型、
|
||||
坏依赖或超预算将 Scene sequencer 标为 `BLOCKED`。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
- N-021-A/B:从真实 Main 读取并写回 scene sequence editor 的 strip、transition、
|
||||
modifier、undo/redo、save/reopen。
|
||||
- N-021-A/B:Main strip 写回、transition/modifier 完整参数、undo/redo 和 save/reopen;
|
||||
基础真实 reader 已完成。
|
||||
- N-021-C:WebCodecs 精确 seek/decode、音频 waveform、proxy 生成、A/V sync、丢帧和
|
||||
损坏媒体处理。
|
||||
- N-021-D:浏览器不支持的 codec、混音与最终编码的服务端 Blender job。
|
||||
@@ -28,4 +32,5 @@
|
||||
|
||||
```bash
|
||||
WEB_TEST_PORT=5321 npm --prefix web run test:e2e -- --grep "N-021 sequencer"
|
||||
npm --prefix web run test:sequencer-main-reader
|
||||
```
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# N-022 Tracking 与 Mask
|
||||
|
||||
状态:`BLOCKED`(资源 schema、marker/mask 有界事务和 solve 能力门已落地;真实 Main、
|
||||
跟踪/相机求解、编辑器 overlay 与桌面 golden 未实现)
|
||||
状态:`BLOCKED`(资源 schema、真实 Mask Main reader、marker/mask 有界事务和 solve 能力门
|
||||
已落地;MovieClip Main、写回、跟踪/相机求解、编辑器 overlay 与桌面 golden 未实现)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
@@ -13,10 +13,15 @@
|
||||
修改使用 revision 事务,锁定项和 stale revision 会拒绝,提交后再次完整解析。
|
||||
4. N-022-C(门):marker/mask schema edit 可用;browser tracking 只有显式 probe 成功后
|
||||
放行,camera solve 保持 `BLOCKED` 并要求受验证的服务端 Blender。
|
||||
5. N-022-A(部分):Blender 5.2 Mask Main reader 输出 layer、spline 和 Bezier point,保留
|
||||
cyclic/fill、viewport visibility、lock/hide-select、opacity、handle type/坐标、feather 与
|
||||
selection;1024 layer、100k spline、1M point 预算在分配前检查。MovieClip 不能从外部路径
|
||||
推导内容 SHA-256,继续阻断而不使用路径散列冒充源摘要。
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
- N-022-A/B:真实 Blender Main MovieClip/Mask 读取、写回、undo/redo、save/reopen。
|
||||
- N-022-A/B:真实 MovieClip reader、Mask/MovieClip 写回、undo/redo 和 save/reopen;Mask reader
|
||||
已完成。
|
||||
- N-022-C:浏览器 tracking 实现、完整 camera/plane solve 与服务端 job/hash 提交。
|
||||
- N-022-D:Clip/Mask editor、overlay、selection/raycast 和 compositor/scene 实际绑定。
|
||||
- N-022-E:desktop solve/error golden、媒体故障和 Chromium 测试。
|
||||
@@ -25,4 +30,5 @@
|
||||
|
||||
```bash
|
||||
WEB_TEST_PORT=5322 npm --prefix web run test:e2e -- --grep "N-022 tracking"
|
||||
npm --prefix web run test:mask-main-reader
|
||||
```
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# N-026 全域发布门
|
||||
|
||||
状态:`BLOCKED`(machine-readable parity manifest、依赖/状态检查、证据聚合和确定性
|
||||
序列化已落地;跨浏览器、离线包、OPFS、性能/故障、SBOM 与发布审计证据未齐)
|
||||
序列化已落地;Chromium 完整套件、离线包、OPFS、性能/故障、SBOM 与发布审计证据未齐)
|
||||
|
||||
## 已验证切片
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
|
||||
## 仍然阻断
|
||||
|
||||
- 完整跨浏览器矩阵、跨 family 桌面 golden、离线/OPFS quota、1M/10M/长媒体基准和 fault fuzz 尚未有
|
||||
真实证据;上游 N-015 至 N-025 的阻断能力会传递到发布门。
|
||||
- Chromium 完整套件、跨 family 桌面 golden、离线/OPFS quota、1M/10M/长媒体基准和 fault fuzz
|
||||
尚未有真实证据;本项目当前不配置 Firefox/WebKit,上游 N-015 至 N-025 的阻断能力会传递到发布门。
|
||||
- 完整 release package 审计、许可证/source offer/SBOM、10M/长媒体性能和 OPFS quota 发布流程仍未完成;
|
||||
当前离线包确定性检查只覆盖已有二进制/源码归档门。
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
"name": "Non-mesh geometry",
|
||||
"status": "LOCAL_BOUNDED",
|
||||
"roadmapStatus": "in_progress",
|
||||
"completedSlices": ["A1", "A2-malformed-binary-partial", "A2-integer-overflow-fixtures", "A2-multichunk-attribute-completeness", "B2", "B3-metadata", "C1-topology-partial", "C1-handle-points-partial", "C1-handle-preview-raycast-partial", "C1-handle-identity-gizmo-main-roundtrip", "C1-rename-partial", "C1-create-delete-poly-partial", "C1-poly-bezier-nurbs-1d-conversion", "C1-multispline-create-delete-bulk-handle-cyclic-transaction", "C1-surface-2d-topology-transaction", "C2-font-geometry-partial", "C2-font-layout-partial", "C2-font-character-style-textbox-roundtrip", "C2-existing-packed-vfont-style-links", "C2-builtin-font-evaluation-exact", "C3-roundtrip", "D1-raycast-partial", "D1-offscreen-vert-edge-partial", "D1-selection-history-partial", "D1-handle-identity-axis-gizmo", "D2-partial", "E1-partial", "E1-desktop-geometry-golden", "E1-true-2d-surface-desktop-golden", "E1-glb-evaluated-nonmesh-roundtrip-partial", "E1-glb-curve-line-surface-mesh-evaluated", "E1-usda-four-object-desktop-roundtrip", "E1-pointcloud-curves-hair-glb-usd-loss-fixture", "E2-1M-chromium", "E2-chromium-worker-recovery", "E2-opfs-quota-chromium"],
|
||||
"blockedSlices": ["B3-vdb-renderer", "C1-multi-handle-selection-drag-gizmo", "C2-new-external-font-import", "D1-cross-object-history-range-patch", "E1-volume-loss-fixture"],
|
||||
"completedSlices": ["A1", "A2-malformed-binary-partial", "A2-integer-overflow-fixtures", "A2-multichunk-attribute-completeness", "B2", "B3-metadata", "C1-topology-partial", "C1-handle-points-partial", "C1-handle-preview-raycast-partial", "C1-handle-identity-gizmo-main-roundtrip", "C1-multi-handle-selection-highlight-bounded-commit", "C1-rename-partial", "C1-create-delete-poly-partial", "C1-poly-bezier-nurbs-1d-conversion", "C1-multispline-create-delete-bulk-handle-cyclic-transaction", "C1-surface-2d-topology-transaction", "C2-font-geometry-partial", "C2-font-layout-partial", "C2-font-character-style-textbox-roundtrip", "C2-existing-packed-vfont-style-links", "C2-builtin-font-evaluation-exact", "C3-roundtrip", "D1-raycast-partial", "D1-offscreen-vert-edge-partial", "D1-selection-history-partial", "D1-cross-object-history-range-patch", "D1-handle-identity-axis-gizmo", "D2-partial", "E1-partial", "E1-desktop-geometry-golden", "E1-true-2d-surface-desktop-golden", "E1-glb-evaluated-nonmesh-roundtrip-partial", "E1-glb-curve-line-surface-mesh-evaluated", "E1-usda-four-object-desktop-roundtrip", "E1-pointcloud-curves-hair-glb-usd-loss-fixture", "E2-1M-chromium", "E2-chromium-worker-recovery", "E2-opfs-quota-chromium"],
|
||||
"blockedSlices": ["B3-vdb-renderer", "C1-continuous-handle-gizmo-preview", "C2-new-external-font-import", "E1-volume-loss-fixture"],
|
||||
"acceptance": ["web:test:nonmesh-roundtrip", "web:test:nonmesh-desktop-golden", "web:test:nonmesh-glb-blender-roundtrip", "web:test:nonmesh-usd-serialization", "web:test:nonmesh-usd-blender-roundtrip", "web:test:nonmesh-binary", "web:test:vdb", "web:test:selection-history", "web:e2e:N-015|non-mesh", "web:e2e:real OPFS quota"],
|
||||
"dependencies": []
|
||||
},
|
||||
@@ -19,7 +19,7 @@
|
||||
"name": "Grease Pencil",
|
||||
"status": "BLOCKED",
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-schema-budget", "A-main-reader", "B-layer-frame-stroke-transaction-partial", "C-point-radius-opacity-color-cyclic-material-partial", "D-current-frame-stroke-preview-main-offscreen-chromium"],
|
||||
"completedSlices": ["A-schema-budget", "A-main-reader", "B-layer-frame-stroke-transaction-partial", "C-point-radius-opacity-color-cyclic-material-partial", "C-bounded-previous-next-onion-preview", "D-current-frame-stroke-preview-main-offscreen-chromium"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
"acceptance": ["web:test:grease-pencil", "web:e2e:N-016 Grease Pencil"],
|
||||
"dependencies": ["N-015"]
|
||||
@@ -29,7 +29,7 @@
|
||||
"name": "Paint and weights",
|
||||
"status": "BLOCKED",
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-stroke-hit-weight-schema-budget-partial", "B-main-vertex-color-partial", "B-main-vertex-weight-normalize-partial"],
|
||||
"completedSlices": ["A-stroke-hit-weight-schema-budget-partial", "A-three-raycast-source-face-barycentric-uv", "B-main-vertex-color-partial", "B-main-vertex-weight-normalize-partial"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
"acceptance": ["web:test:paint-roundtrip", "web:e2e:N-017 paint"],
|
||||
"dependencies": ["N-016"]
|
||||
@@ -39,7 +39,7 @@
|
||||
"name": "Physics and simulation",
|
||||
"status": "BLOCKED",
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-family-capability-inventory", "B-settings-dependency-cache-manifest-partial", "C-exact-frame-selection-gate"],
|
||||
"completedSlices": ["A-family-capability-inventory", "B-settings-dependency-cache-manifest-partial", "C-exact-frame-selection-gate", "C-content-addressed-frame-range-read-hash-gate"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
"acceptance": ["web:e2e:N-018 physics", "web:test:simulation-cache"],
|
||||
"dependencies": ["N-017"]
|
||||
@@ -49,7 +49,7 @@
|
||||
"name": "Lighting and render",
|
||||
"status": "BLOCKED",
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-camera-light-world-scene-reader-partial", "A-main-light-world-properties-partial", "B-three-exposure-shadow-mapping-partial", "A-white-balance-integrity-gate"],
|
||||
"completedSlices": ["A-camera-light-world-scene-reader-partial", "A-main-camera-dof-properties-partial", "A-main-light-world-properties-partial", "B-three-exposure-shadow-mapping-partial", "A-white-balance-integrity-gate"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
"acceptance": ["web:test:lighting-roundtrip", "web:e2e:N-019 Scene exposure"],
|
||||
"dependencies": ["N-018"]
|
||||
@@ -59,9 +59,9 @@
|
||||
"name": "Compositor",
|
||||
"status": "BLOCKED",
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-graph-resource-cycle-schema", "B-bounded-cpu-executor-partial", "C-image-operation-budget-cancel-partial", "D-unsupported-node-preservation-gate"],
|
||||
"completedSlices": ["A-graph-resource-cycle-schema", "A-main-graph-structure-reader-partial", "B-bounded-cpu-executor-partial", "C-image-operation-budget-cancel-partial", "D-unsupported-node-preservation-gate"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
"acceptance": ["web:e2e:N-020 CPU compositor"],
|
||||
"acceptance": ["web:test:compositor-main-reader", "web:e2e:N-020 CPU compositor"],
|
||||
"dependencies": ["N-019"]
|
||||
},
|
||||
{
|
||||
@@ -69,9 +69,9 @@
|
||||
"name": "Sequencer and audio",
|
||||
"status": "BLOCKED",
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-strip-resource-schema", "B-deterministic-move-trim-split-partial", "B-source-frame-seek", "C-runtime-codec-probe-gate"],
|
||||
"completedSlices": ["A-strip-resource-schema", "A-main-strip-timeline-reader-partial", "B-deterministic-move-trim-split-partial", "B-source-frame-seek", "C-runtime-codec-probe-gate"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
"acceptance": ["web:e2e:N-021 sequencer"],
|
||||
"acceptance": ["web:test:sequencer-main-reader", "web:e2e:N-021 sequencer"],
|
||||
"dependencies": ["N-020"]
|
||||
},
|
||||
{
|
||||
@@ -79,9 +79,9 @@
|
||||
"name": "Tracking and masks",
|
||||
"status": "BLOCKED",
|
||||
"roadmapStatus": "planned",
|
||||
"completedSlices": ["A-clip-track-plane-mask-schema", "B-revision-marker-mask-edit-partial", "B-source-hash-binding-validation", "C-browser-probe-solve-gate"],
|
||||
"completedSlices": ["A-clip-track-plane-mask-schema", "A-main-mask-layer-spline-point-reader", "B-revision-marker-mask-edit-partial", "B-source-hash-binding-validation", "C-browser-probe-solve-gate"],
|
||||
"blockedSlices": ["A", "B", "C", "D", "E"],
|
||||
"acceptance": ["web:e2e:N-022 tracking"],
|
||||
"acceptance": ["web:test:mask-main-reader", "web:e2e:N-022 tracking"],
|
||||
"dependencies": ["N-021"]
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user