跳转至

工具与笔刷

工具(Tools)

工具(Tool)是在用户绘制时对图层纹理进行处理的“笔刷行为”。资源内置 9 种工具:brush、erase、bucket、eyedropper、brush sampler、clone、blur、gaussian blur 与 grayscale。用户可在工具间切换以获得不同的绘制效果。下面是各工具功能说明:

  • Brush - 默认绘制工具。参数:

    • Can Paint Lines - 是否绘制线条;关闭时将只绘制点;
    • Draw On Brush Move Only - 仅当用户移动输入源(鼠标、手指、手写笔等)时才渲染笔刷;
    • Smoothing - 平滑参数,用于在 SpriteRenderer 与 RawImage 上绘制更顺滑的线条。范围 1 到 10:1 表示关闭平滑,10 为最大平滑。Smoothing 大于 1 时会渲染更多笔刷采样,并且绘制可能出现约 2 帧延迟:

    Image title
    本示例为演示不同平滑值的差异,将目标 FPS 设为 20

    • Randomize Points Quads Angle - 绘制点时随机每个笔刷采样的角度;
    • Randomize Lines Quads Angle - 绘制线条时随机每个笔刷采样的角度;

    Note

    使用图案纹理绘制仅在 Additive PaintMode 下支持

    • Use Pattern - 是否使用图案纹理而不是纯色绘制;
    • Pattern Texture - 图案纹理引用;
    • Pattern Scale - 图案纹理缩放;
    • Pattern Angle - 绘制图案纹理的角度;
    • Pattern Offset - 图案纹理绘制偏移;
  • Erase - 使用画笔擦除图层纹理(与绘制相反);

    Note

    Bucket 工具仅在 UV 空间下工作

  • Bucket - 使用选定颜色填充纹理区域。参数:

    • Tolerance - 容差(0 到 1)。容差决定会覆盖多少像素;值越大,被填充为画笔颜色的像素越多。
    • Can Fill Alpha - 是否填充图层中的透明像素;
    • Use Pattern - 是否使用图案纹理而不是纯色填充;
    • Pattern Texture - 图案纹理引用;
    • Pattern Scale - 图案纹理缩放;
    • Pattern Angle - 图案纹理角度;
    • Pattern Offset - 图案纹理偏移;
  • Eyedropper - 拾取颜色并将其设为画笔颜色。参数:

    • Use All Active Layers - 是否在拾色时使用所有激活图层;若关闭则只使用当前激活图层;
    • Sample Alpha - 是否取样像素 Alpha。

    Note

    BrushSampler 工具仅在 UV 空间下工作

  • BrushSampler - 将绘制区域的一部分复制到画笔纹理中。

  • Clone - 克隆纹理区域。Clone 的使用方式类似 Photoshop 等绘画软件:第一次点击确定克隆起点,之后的点击会克隆对应区域。参数:

    Note

    Clone 工具仅在 UV 空间下工作

    • Copy Texture On Press Down - 按下时是否复制源纹理;
    • Use All Active Layers - 克隆时是否使用所有激活图层;若关闭则只使用当前激活图层。
  • Blur - 模糊纹理区域。Blur 使用简化的高斯模糊算法,通过两个 Shader Pass 实现,可配置模糊强度。参数:

    • Iterations - 模糊迭代次数;值越大模糊越强。建议范围 1 到 5。值越大也意味着更多 GPU 资源与更高 draw call 数(每次迭代 2 次 draw call);
    • BlurStrength - 模糊强度;0 为最小,值越大越强;
    • DownscaleRatio - 进行模糊前对纹理尺寸下采样的倍数;
    • Use All Active Layers - 模糊时是否使用所有激活图层;若关闭则只使用当前激活图层。
  • Gaussian Blur - 模糊纹理区域。Gaussian Blur 使用高斯模糊算法,在一个 Shader Pass 中完成,可配置模糊强度。参数:

    • Kernel size - 模糊核大小;值越大模糊越强。建议范围 3 到 7;
    • Spread - 模糊扩散范围;0 为最小,值越大越强。建议范围 0 到 5;
    • Use All Active Layers - 模糊时是否使用所有激活图层;若关闭则只使用当前激活图层。
  • Grayscale - 对图层纹理进行去色(灰度化)。用户用灰度工具绘制时,笔刷覆盖区域会去饱和(饱和度设为 0)。

笔刷(Brushes)

资源提供预设系统,用 ScriptableObject 存储画笔参数,便于在 PaintManagers/PaintController 之间复用。预设位于:Assets/XDPaint/Resources/XDPaintBrushPresets.asset。你可以按名称保存画笔参数,并从列表中应用到其他对象。如果你在 PaintManager/PaintController Inspector 中修改了非 Custom 的画笔参数,这些数据不会自动写回 Presets。

资源内置了一些预设,可直接复用或修改。你可以在 PaintController/PaintManager Inspector 窗口中重新保存预设,或者在 Project 窗口选中 XDPaintBrushPresets 资源并在 Inspector 中编辑。

要将当前参数保存为新预设,点击 Save As
要重命名预设,点击 Rename,输入新名称并点击 Save
要删除预设,点击 Remove 并在对话框中确认。
如果希望所有 PaintManager 使用同一套画笔参数,请在 PaintController 中勾选 Use Shared Settings;否则每个 PaintManager 都会使用自己独立的画笔参数。

Image title

添加新画笔(Adding New Brush)

要添加新画笔,请在 Hierarchy 中选中 [XDPaintContainer] GameObject,然后在 Inspector 中设置唯一的画笔名称、选择画笔纹理并调整参数,最后点击 Save As 保存为预设。在 PaintManager 组件中也可以用同样方式操作。
新画笔会被添加到 Brush Presets(XDPaintBrushPresets.asset)中,并可在 PaintController/PaintManager 组件中选择使用。

Image title