34 lines
1.8 KiB
Markdown
34 lines
1.8 KiB
Markdown
# N-017 Paint 与权重
|
||
|
||
状态:`BLOCKED`(stroke/patch schema、Main 顶点色/权重 transaction 已落地;真实命中、texture paint 和 GPU/image 生命周期未实现)
|
||
|
||
## 已验证切片
|
||
|
||
1. N-017-A(部分):`PaintStrokeIR` 覆盖 Vertex Color、Weight、Texture Paint,携带
|
||
object/revision、radius/strength、pressure、PBVH face/barycentric hit 和 UV hit。
|
||
2. N-017-A(部分):`WeightPatchIR` 覆盖有界 vertex index/value、normalize 和 mirror 意图。
|
||
3. 预算限制为单 stroke 100k samples/64 MiB 估算、单 weight patch 1M entries、单 texture
|
||
tile 256 MiB;非法 barycentric、pressure、color、weight 和非有限数会结构化拒绝。
|
||
4. N-017-B(部分):`setVertexColors` 在单用户 Mesh 上创建/转换 `POINT` 或 `CORNER`
|
||
`FLOAT_COLOR` 属性,并更新 active color;`setVertexWeights` 在真实 Object/Mesh 上创建顶点组、
|
||
写入/移除 `MDeformWeight`,支持逐顶点 normalize。
|
||
5. 顶点色和权重都已通过 Main undo/redo 与 `.blend` save/reopen;`mirror:true` 在没有已验证
|
||
对称拓扑映射时返回 `CAPABILITY_MISSING`,不会伪造镜像结果。
|
||
|
||
## 仍然阻断
|
||
|
||
- N-017-A:真实 PBVH/UV raycast 与 brush falloff 对桌面语义的对应。
|
||
- 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。
|
||
|
||
## 验收
|
||
|
||
```bash
|
||
WEB_TEST_PORT=5203 npm --prefix web run test:e2e -- --grep "N-017 paint"
|
||
npm --prefix web run test:paint-roundtrip
|
||
```
|
||
|
||
`test:paint-roundtrip` 覆盖 CORNER color、vertex group patch、normalize、mirror 错误门、
|
||
undo/redo 与 save/reopen。
|