11/01/2019

ノーマルマップ合成です。
ペイントソフトでカラーチャンネルとブレンドモードを使って合成する昔ながらの合成方法をLWのノードに置き換えただけなので何の工夫もしてません(笑。
本来ペイントソフトで行うマップ合成処理をLWでやるのは畑違いと言うか、非効率でやるべきではないのですが、例えば3Dサーフェスにノーマルマップの合成アニメーションを行いたい場合であれば多少の価値はあるかと思います。ノード構成は見ての通りシンプルなので説明は以下に大雑把にしておきます。
R,GチャンネルをOverlayで、Bチャンネルを乗算で合成してます。で、LWのImageノードのブレンドモードにはOverlayがありませんので、見ての通りCompoundノードでOverlay計算をノード構成してます。合成したノーマルマップ画像をダイレクトにマテリアルのNormal入力に接続したい為に(合成アニメーションの為に)、DPさんのObject Tangentノードを使って、ColorベクトルをNormalベクトルへと変換してます。

以下のテスト動画はノーマルマップの合成アニメーションです。
(傷模様の入ったマップとLWロゴマップの合成です。)


以下、LWでの合成処理の理屈を書いておきます。
以前にも少しだけ記事にしてますが、フリーペイントソフトのKritaにはノーマルマップペイント機能があって、且つノーマルマップの合成モードもネイティブで実装しています。Kritaのレイヤーブレンドモードの"その他"の項目に"法線マップ結合"と言う、まんまのブレンドモードがあります。そのモードを合成レイヤーに適用することで、下層レイヤーとのノーマルマップ合成が可能になっています(下図参)。(ちなみにこの"法線マップ結合"のアルゴリズムはPS用スクリプトのCombine Normalと同じものです。)


と言ったように、kritaでは一発合成する為のブレンドモードが存在しますが、当然LWにはこの"法線マップ結合"のような機能は存在しません。そこで先述のカラーチャンネルに対しオーバレイと乗算計算を以って、類似の合成処理を行うことになります。それが下図の理屈になります(下図左側の各パネルUIはKrita)。

0 件のコメント:

コメントを投稿