Substance Designer wiki - Pixel Processorとは
目次


はじめに

Pixel Processorというノードを初めて触ってみた方で、いきなり使いこなせた方はそうはいないと思います。
そもそも何に使えばいいのかすら分からないまま封印している方も多いのではないでしょうか?

まずは基本となる部分を紹介していきたいと思います。


注意:基本のワークフローやFX-Mapよりも処理の根本的な部分を突き詰めているので、完全に初心者向けではない内容です。
また、数学の知識が必須です。


FX-Mapは画像素材を作るノードでしたが、Pixel Processorは画像素材に加え、フィルタも作れるノードだと考えればいいと思います。



試しに使ってみる



このようにつないでみると、とりあえず入力と同じ画像が出力されていると思います。
しかしこのままでは意味が分かりませんので、何か編集してみましょう。




編集グラフに移る


おそらくデフォルトでこのような感じになっていると思います。編集ボタンを押した瞬間に挫折した方も多いのではないだろうか

Pixel Processorは、左上から1ピクセル毎に順番に色を生成するノードです。
1Kテクスチャなら、1024*1024=1048576回反復することになります。FX-Mapの反復の比じゃない

この図のように単純なノイズを作るならFX-Mapよりも高速でしょう。

  • $posと呼ばれるシステム変数は、現在処理しているピクセルの座標を取得します。*1
  • そしてSample Grayというノードは、Pixel Processorノードに入力したグレースケール画像から、指定した座標のピクセルの明るさを取得します。


つまり今は$pos変数により座標値を左上から順番に一つ一つ抜き出し、Sample Grayで入力画像の左上から順番に明るさを取得しているため、そのまんまの画像が出力されているという事です。




試しに変化を与える


このように0.5を足し算してみると、画像が明るくなったのが分かると思います。
これは、ブレンドノードで加算でブレンドしたのと全く同じです。

もちろんこれは一例なので、こんなシンプルな処理であればブレンドでした方が処理も速かったりします。



集中線を作る


座標の値を変化させた後にSample Grayへ入力すると、画像を変形させる事が可能になります。
しかし見てわかる通り、Arc Tangentという逆正接を用いるノードを使用しています。こういうのが普通に出てくるので、当然のように数学の知識を要求されます。
プログラミングして画像を作っている気分になります*2

なので敷居はとても高い分野です。しかし、相当な自由度をもってフィルタなどを作る事が出来るようになります。

今回はこれで終了です。最後にPixel Processorを使用しているノードを紹介しておきます。




Pixel Processorを使用している例

ノード名説明
Triplanar位置テクスチャとワールド法線テクスチャを入力すると均一でシームレスなテクスチャを作れる
Cartesian to Polar入力した画像を円上に変形させる

Cartesian to Polar と Polar to Cartesian の参考画像
円のループを作るノードと円を水平にするノードである事がわかると思います。