Path Mask

Path generation/manipulation node. Path Mask creates or processes vector path data.

intermediate
Since P00

Input Ports

Path

マスク化するBezier path

Path

Output Ports

Image

白+アルファのマスクimage

Image

Parameters

NameTypeDefaultDescription
WidthInt64Canvas width
HeightInt64Canvas height
Overlap ModeEnumUnion重なった閉じPathをどう面として扱うか
Pixel PerfectBoolfalsePP 補正後の輪郭を基準にマスクを作る
PP ModeEnumRemoveCornerPP 補正方式
Closed Path CrossBoolfalse閉Pathの内外判定に外積ベース補正を使う
Closed EdgeEnumOuter閉Pathで内側 / 外側のどちらを削るか

重なり方

モード説明
**Union / 全部塗る**どれか1つの閉じPathの中にあれば塗る。普通に図形を重ねたいときの基本モード
**EvenOdd / 中を穴にする**重なるたびに塗る/抜くが切り替わる。ドーナツや枠のように「中を抜きたい」とき向け
**NonZero / 向きで穴を決める**Pathを描いた向きで塗るか穴にするかを決める。外周と穴を自分で描き分けたい上級者向け

pixel-perfect

  • オフ: Normalの輪郭を基準にマスクを作る
  • オン: PathStroke と同じ PP 補正後の輪郭を基準にマスクを作る

PathStroke の見た目と面のシルエットを揃えたいときはオンにします。

Algorithm

  1. 閉じたサブPathだけを対象に rasterize_subpath で輪郭ピクセル列を取得
  2. 複数サブPathを 1 つの面として扱い、各ピクセル中心に対して fill_rule で内外判定
  3. 塗り領域と輪郭に白 (1,1,1,1) を描き、それ以外は透明のまま出力

Usage Examples

パスからマスクを作る

[MultiPathEditor] → path → [PathMask(fill_rule:Union)] → [Preview]

画像をパス形状で切り抜く

[PixelCanvas] → source → [Mask] → [Preview]
                         ↑
               [PathMask] → mask

将来の面散布の基盤

[MultiPathEditor] → [PathMask] → [MaskScatter]

Notes

  • 開いたサブPathは無視されます
  • PathFill と違い、複数サブPathをまとめて面として扱います
  • Mask ノードで使う前提のため、出力は白+アルファのimageです
  • 図形が重なった部分もそのまま塗りたい場合は Union / 全部塗る を使います

💡 Tips

  • 開いたサブPathは無視されます
  • `PathFill` と違い、複数サブPathをまとめて面として扱います
  • `Mask` ノードで使う前提のため、出力は白+アルファのimageです
  • 図形が重なった部分もそのまま塗りたい場合は `Union / 全部塗る` を使います

Related Nodes

multipatheditor
preview
pixelcanvas
mask
pathmask
maskscatter
Path Mask — PixPipeline Node Reference