P7-07 · 预设与 UI:把混色交到用户手里
- Phase / ID: P7 / P7-07
- Depends on: P7-00(tile 默认)、P7-01、P7-04、P4-05(笔刷 UI)
- Files:
packages/core/src/brush/BrushPreset.ts、packages/vue/src/**(笔刷面板 / 参数条)、packages/saier/src/painter.ts(后端门控)、packages/vue/test/ - Effort: M
Context
把 P7 的混色 / 水彩做成可切换的预设 + 可调的参数滑块,沿用 P4-05 的笔刷 UI 与 D7 薄皮约定——UI 只经 PainterController setter/事件,不碰 core 内部。
后端门控(D11 方案 A,P7-00 已落):tile 已是默认后端,混色笔刷开箱即用;UI 无需切后端,仅在用户显式选了非 tile 后端时禁用混色预设并提示。
已落地(2026-06-30):默认预设新增 smudge / blender / watercolor;PainterOptionsBar 在 smudge 系 preset 下显示 pickup / persistence / colorAmount / density / dilution / wetEdge / paper grain 控件,全部经 PainterBrush → PainterController setter;BrushPresetPicker 对无 sampleRegion 的后端禁用 smudge 系 preset 并给出 tile 后端提示。
Steps
- 预设:补齐
smudge/blender/watercolor默认预设(参数来自 P7-04 / P7-05),出现在 preset picker。 - UI 参数:参数面板按当前引擎条件渲染 P7 滑块——
smudge(取色量)、persistence(留色)、colorAmount(自色)、dilution(稀释)、wetEdge(湿边开关 / 强度)、density(浓度)、纸纹开关 + 强度;全部经 controller setter(setSmudge等)。 - 后端门控:tile 默认(P7-00)下混色开箱即用;仅当用户显式选
backend: 'rendertexture'时,混色预设灰显并提示「需 tile 后端」。 - demo:
examples/vue与site经共享usePainter()(P5-04)即得新笔刷,无需各自接线。 - 测试:UI 改滑块 →
brush:change携带新参数;引擎切换时面板条件渲染正确;demo 冒烟。
Acceptance
- [x] preset picker 可选 smudge / watercolor,参数滑块即时驱动 core(经 controller,不碰内部)。
- [x] tile 默认下混色笔刷开箱即用;显式选非 tile 后端时混色预设灰显 + 提示。
- [x]
examples/vue与site共享同一usePainter()即得新笔刷;冒烟通过。
Out of scope
- 笔刷工作室 / 自定义预设持久化(后续);新增 core 引擎逻辑(P7-04/05/06)。