投稿

2019の投稿を表示しています

blender2.81 eeveeのシェーダノードでぼかしシェーダをつくる

イメージ
ご挨拶 こんにちは blender楽しんでますか。 私は最近あまりモデリングができていません。 そのかわりシェーダでいろいろ実験していたりします。 ぼかしシェーダ 元ネタはツイッターで見かけました。 ソースは失念しました。 画像の通り、シェーダでぼかしをかけることができます。 このシェーダについて解説していきたいと思います。 解説は2.81で行います。 2.80には実装されいていないノードを使用しますが、2.80用のノードも用意して有ります。 もう待ちきれないよ、早く出してくれ! 実装済のblendファイル用意しておきました。 解説 理屈としては、マッピングベクトル(UV座標など)をノイズでずらしてテクスチャをランダムサンプリングすることでブラーを再現しています。 ノードグループ入力 こちらがノードグループになっています。 Mapping_Vector  UV座標や位置、生成座標などテクスチャ・マッピングに用いるベクトルを入力します Blur_Size  X軸、Y軸別々のブラーサイズを指定することができます。Z軸は特に反映されません。 拡散用ノイズ生成 ホワイトノイズノードにマッピングベクトルを入力 2つあるのは、ホワイトノイズノードは0~1のグレイスケールの値を出力するので、XY軸で同じノイズを使い回すと、斜め方向に偏るブラーになってしまうためです。 また単に2つホワイトノイズノードを複数用いるだけですと、出力結果が同一になります。 そのため、入力するマッピングベクトルを少しずらしておきます。 (画像のノイズ生成調整のところ) 値を0~1から-0.5~+0.5に調整 生成されたノイズは0~1のグレイスケールのため、そのまま使うとマッピングベクトルをずらす先がプラス方向に偏るため、ブラー結果が右上にずれます。 2つのノイズを数式ノードで0.5減算することでベクトルをずらす先がプラス方向に偏らなくなります。 値をベクトルに変換 2つのノイズをXYZ合成ノードのX,Yに入力してベクトルに変換します。 Zの値は特に設定しなくても良いです。 これで拡散用ノイ