続いて使えるレイヤー種について。
グラディエントは標準のセルシェードでおなじみですが、ベース設定については入力値が拡張されてます。
それがメインパネル上にある”ネガティブシェード”であります。
通常のシェーディングではライトのベクトルと法線の角度が90度以上の場合はライトの光が届いていないのでシェーディング値は0.0になってしまう所を、ネガティブシェードを使用すると180度までの値を取るようになります。
通常の場合
真横からライトを当てると当然中央から反対側はライトの効果が0、グラディエント0%の位置になります。
ネガティブシェードを使用すると
ライトの当たっていない側も0~-100%の位置を取ることができます。
ただ、当然普通じゃない計算なので複数のライトを当てたときなどは意図しない結果になったりするので注意。
サーフェイスレイヤーはサーフェイスパラメータを取得するレイヤーで、今のところRawColorとColorが選択可能。
RawColorは普通にサーフェイスパラメータの色が取れます。
たとえば一番下にRawColorレイヤーを置いてその上にグレースケールのグラディエントを乗算で置けば
こんな感じで普通のセルシェーダーっぽくなります。
もうひとつのColorはCelPainter直前にセットされているシェーダーまでの計算結果の色が取れます。
ポットのサンプルにもあるようにBRDFシェーダーでスペキュラを計算させてグレースケールで出力。
これを加算や覆い焼きで重ねればBRDFのスペキュラを使用できます。
なもんで今回のCelPainterは機能控えめ、異方性反射だろうがアンビエントオクルージョンだろうが全部他人のフンドシで相撲取りまくれ!
説明の手抜きが加速してまいりました。
ライトレイヤーはColor、NormalizeColor、Radiosityの3つ。
Colorは通常のシェーディング計算されたライト色で、NormalizeColorはセルシェーディングのライト色計算になります。
さっきのサーフェイスのRawColorと組み合わせて
こんな感じでライト色も乗算すると旧バージョンのセルシェーダーと同一の処理になるはず。
そこまでするなら普通に前のCelPainter使えばいいだけの話なんだけど。
最後にRadiosityはそのままラジオシティなんだけどシェーディングノイズ除去がきかないんで使い物になりませんでしたー
つづく!