現在ご覧いただいている The Classroom のレンダリングを分析するこの第2回チュートリアルでは、前回のチュートリアルの最後で見たレンダリングから、この映像へ移行するために Post-Production で使用した Compositing エフェクトについて説明します。
動画の書き起こし
皆さんこんにちは! 現在ご覧いただいている The Classroom のレンダリングを分析するこの第2回チュートリアルでは、前回のチュートリアルの最後で見たレンダリングから、この映像へ移行するために Post-Production で使用した Compositing エフェクトについて説明します。
前回のチュートリアルと同様に、今回も Blender バージョン 3.6 を使用して作成しています。
Compositing ノードグループを Blender プロジェクトにインポートする方法については、以前公開したチュートリアルで説明しています。
前回のチュートリアルでは、Absorption Scatter ノードを使用して volumetric lighting を実現する方法を紹介しました。

この効果だけでも、エフェクトなしのレンダリングより画像はかなり魅力的になります。しかし、Compositing を使えば、コントラストを高めたり、glow を追加したり、最終画像に Vignetting エフェクトを加えたりすることができます。
特に、今回は2種類のエフェクトセットを使用しました。1つ目は Step-Glare、2つ目は Vignetting と呼ばれるものです。

まずは、よりシンプルな2つ目のノードグループ、Vignetting の分析から始めましょう。このグループは画像の周辺を暗くすることで、最終画像に vignetting エフェクトを与えます。グループを選択した状態で TAB キーを押して開きます。
その後、TAB キーを押せば再びグループを閉じることができます。

Blender で Vignetting エフェクトを実現する方法はいくつかあります。
私の場合は、次の方法を選びました。Lens Distortion ノードと Greater Than ノードを使い、レンダリング画像の内側に収まる白い楕円を黒背景の上に作成します。次に、Relative モードの Blur ノードで楕円のエッジをぼかし、最後に Mix Color ノードを使って、そのマスクを元画像に乗算します。
グレースケールマスクを画像に乗算すると、マスクが暗い部分ほど画像が暗くなるという効果があります。

この概念を覚えておいてください。というのも、この処理はもう1つのノードグループでも使われているからです。では、Vignetting グループについては必要な内容をすべて確認したので閉じて、Step-Glare グループを見ていきましょう!

Step-Glare グループでは2つの処理を行っています。まず Dilate Erode ノードから出力されるマスクを使って元画像を暗くし、その後、結果の画像に Fog Glow タイプの glare を適用します。
先ほど、グレースケールマスクを画像に乗算する処理について説明しました。次に確認するべきなのは、Step モードの Dilate Erode ノードが実行する処理です。
このノードはグレースケールマスクに対して動作するため、まず元画像をグレースケールに変換し、その後変換後のグレースケールマスクを返します。
今表示している画像は、Distance パラメータを 0 に設定したときに Dilate Erode から得られるマスクです。つまり、これは単なるグレースケール変換であり、まだエフェクトは適用されていません。

特に、Dilate Erode は morphological operation を実行します。これは画像内の形状に作用する処理です。Distance フィールドに正の値を設定すると、各ピクセルの影響範囲が周囲へ拡張され、負の値を設定すると縮小されます。Step モードでは、各ピクセルが上下左右4方向のピクセルを参照し、その参照距離は Distance パラメータによって決まります。Distance モードも試してみてください。こちらは斜め方向のピクセルも考慮します。

実際の効果として重要なのは、負の値を使用すると暗い領域が拡張され、乗算処理によって最終画像がより暗くなるという点です。
逆に、正の値を使用すると明るい領域が拡張され、それによって最終的な Glare の glow エフェクトも強調されます。
今表示しているのは、Distance フィールドに -5 と 5 という極端な値を設定した場合に得られるマスクです。
特に注目してほしいのは、元画像において暗い部分と明るい部分が隣接している領域です。例えば、ランプの縁や壁の magnetic board の周辺などです。


次に、Distance フィールドに -5 と 5 を設定した場合に得られるレンダリングを交互に表示しています。
この場合は、先ほど挙げた部分だけでなく、金属部分に現れる Glare の glow にも注目してください。例えば、椅子や机の metal 部分などです。


チュートリアル冒頭でお見せしたレンダリングを作成するために、私は Distance パラメータを 1 に設定し、画像を少し明るくしました。
最後にお見せする比較は、Dilate Erode ノードの Distance フィールドを 1 と 5 に設定した2種類のレンダリングです。


この場合は、値を 5 に設定したことで発生する blur に注目してください。例えば、机のディテールや blackboard のエッジが失われ、シャープさが低下していることが分かります。
したがって、Distance フィールドの値は、こうした結果を考慮して設定する必要があります。コントラストが高く輪郭のはっきりした画像を目指すのか、それともディテールやエッジが柔らかい painterly な画像を目指すのかによって調整してください。
Glare ノードでは、Threshold の値を下げる必要があります。目的の結果が得られるまで調整してみてください。
このノードは、明るさが Threshold 値を超える部分にのみ glow エフェクトを適用します。しかし、デフォルトではこの値が 1 に設定されているため、そのままではエフェクトは適用されません。
このチュートリアルで紹介した最終レンダリングを得るために、私は Threshold フィールドの値を 0.5 に下げました。

つまり、まとめると、最初のレンダリングは Step モードの Dilate Erode ノードをマスクとして使用して暗くされ、その後 Fog Glow モードの Glare エフェクトが適用されます。
Dilate Erode の Distance フィールドに設定する値によって、画像の明るい部分の広がりが変化し、それに応じて Glare の glow も強くなったり弱くなったりします。
その後、このようにして得られたレンダリングに対して、専用のノードグループを使って Vignetting エフェクトを適用します。
それでは、このチュートリアルは以上です! また次回お会いしましょう!