【Blender5.0】レンダーパス(Render Pass)の基本と使い方

blender
記事内に広告が含まれています。

レンダリング結果をあとから調整したい、影だけを強調したい、反射の強さを微調整したい、
そんなときに役立つのがレンダーパス(Render Pass)です。

レンダーパスを使うと、1枚の完成画像をそのまま扱うのではなく、
「影」「反射」「発光」「奥行き」といった要素ごとに分解した情報を個別に扱えるようになります。

これはコンポジットやカラーグレーディング、最終調整の自由度を大きく高める仕組みで、静止画でもアニメーションでも、ワークフローを一段上に引き上げてくれます。今回Cyclesでのレンダリングをメインに解説しています。

この記事では、

  • レンダーパスとは何か
  • Blenderでの基本的な使い方
  • Cyclesのレンダリング画像をレンダーパス合成で再構築する方法
  • レンダーパスを使って基本的な加工をする方法

について、順を追って整理していきます。

この記事は、Blenderのレンダーパス(Render Pass)を解説している初級~中級者向けの記事です。

難易度 3.0

スポンサーリンク

レンダーパス(Render Pass)とは

レンダーパス(Render Pass)とは、レンダリング中に計算された中間的な情報を、別々の画像として出力する仕組みです。

例:

  • オブジェクトの拡散色
  • 光の当たり方
  • 深度情報
  • 法線情報 など

これらは Compositor の Render Layers ノードから取り出し、標準の Combined 出力とは異なる方法で自由に合成できます。

スポンサーリンク

レンダーパスの使い方(Blender)

レンダーパスの有効化

レンダーパスは以下の手順で設定します。

View Layer(ビューレイヤー)プロパティ > Passes
の項目から、必要なパスにチェックを入れる

ここでチェックを入れたパスが、レンダリング時に出力され、コンポジットで使えるようになります。

  • データ系パス…オブジェクトやシーンの色情報・ジオメトリ情報・深度など、レンダリングの「計算結果そのもの」や「シーン情報」
    • 例:Depth(Z深度)…カメラからの距離
  • ライト系パス…光の寄与そのもの、つまり シーンの照明の結果
    • 用途:光の成分ごとに分けて調整、後から明るさや色を変更するなどのコンポジット
  • マスク系パス…オブジェクトやマテリアルを「選択できる形」で出力するパス

Shader AOVやLight Groupsは自分で出力したいデータを登録して使うパスです。

※パスの種類は多いですが、不要なレンダーパスを大量に有効にすると、メモリ使用量やファイルサイズが増えます。

スポンサーリンク

レンダーパスの合成

まずはライト系パスを使って画像を合成する方法を解説します。

わかりやすいようにガラスやボリュームなどのマテリアルを作ってレンダリングしました。どのレンダーパスからどのような画像が出力されているか見てください。

Cyclesではこれらのレンダーパス出力をMixノードで加算したり乗算したりして最終的な統合された画像を再構築することができます。

  • Diffuseパス反射や透過など特殊な光の効果を抜いた、物そのものの色
  • Glossy パス…鏡面反射・反射光成分を出力するパス
  • Transmission パス…透過・屈折成分を扱うパス
  • Volume パス光がボリューム(霧・煙・空気などの体積)を通過するときの成分を扱うパス
  • Emissionパス発光マテリアルからの光
  • EnvironmentパスWorld(環境光)の発光成分
  • Direct…直接光
  • Indirect…間接光
  • Color…マテリアルの色成分。

※Emission, Volume, Environmentなど、マテリアルや設定を使用してない場合は使わなくていいです。

実際のノードの組み方

Diffuse部分だけをコンポジットノードで組んでみました。

(コンポジット画面でノードが出てない方はメニュー上部のNewを押して、Render Layerノードが出たら、1回レンダリングをして画像を表示させましょう。)

  • まずDiffuse Direct/IndirectをDenoiseノードでノイズ除去します。(理由は後述しています)
  • Diffuse Direct/IndirectMixノードのAddで加算します
  • ②をMixノードのMultiplyで、Diffuse Colorと乗算します。

上のレンダーパスの合成の図にあったように、のところはAdd(加算)×のところはMultiply(乗算)で合成していきます。

Denoise(デノイズ)

各レンダーパスはデノイズ処理されておらず、一部のパスは手動でノイズ除去する必要があります。

ノイズ除去の仕方:

  • データ系パスのDenoising Dataにチェックを入れ、Render Layersノードにデノイズの出力を出します。
  • Denoiseノードを出して、
    • Diffuse Direct/Indirect出力 → Image入力に接続
    • Denoising Normal → Denoising Normal入力に接続
    • Denoising Albedo → Denoising Albedo入力に接続します。
デノイズの必要があるパス

ライト系パスのDirect, Indirectパスは、光のサンプリング誤差によるノイズを含むため、デノイズの効果があります。

  • Diffuse Direct / Indirect、Glossy Direct / Indirect、Transmission Direct / Indirectなど

デノイズ不要・非推奨なパス

以下は 数値情報や色情報そのものであり、デノイズすると破綻する、または意味がありません。これらは デノイズせず、そのまま使用するのが基本です。

  • Diffuse Color / Glossy Color / Emission
  • Normal / Position / Z / UV / Cryptomatte などの Utility パス
Render Properties の Denoise は何をデノイズしているのか

Render Properties(レンダープロパティ)> Sampling > Denoise を有効にすると、レンダリング結果が自動的にデノイズされます。
ただし、ここでデノイズされるのは 最終的な Image(Combined)出力のみ です。

コンポジットノードの「Render Layers」ノードを見ると、
Image→ デノイズ済みの最終合成画像
Noisy Image→ デノイズ前の最終合成画像

という2つの出力が用意されています。Denoiseを有効にすることでノイズ除去され、良さそうにみえますが、最後に一回ノイズ除去されているだけなので、各レンダーパスをそれぞれデノイズして再構築した画像の方が詳細が潰れておらず、クオリティが高くなります。

各レンダーパスをデノイズした画像の方が、プリンやクリームの影の部分の詳細が潰れずに表現されています。
スポンサーリンク

全てのパスを合成する

このシーンのレンダリングに必要なパスを全て合成したものが右図になります。

それぞれのDirect, Indirectパスをデノイズし、Addで加算。ColorをMultiplyで乗算します。

そこにEmissionEnvironment出力などを使っていれば、これもAddで加算していきます。

全てを合成した出力は、元のImageとほぼ同じものになりました。(デノイズなどの効果でわずかに違いがあります。)

各パスを制御できるようになったので、パスごとにRGB Curveノードで強弱を変えたり、色を変えたり、グレアで光の演出をつけたりできます。

また、AOやZパスなどを使って、遠近感や影の濃さも変更できます。下のセクションで例を紹介しています。

スポンサーリンク

レンダーパスの利用

カフェのようなシーンがあります。

レンダーパスを使って画像を変更してみます。

  • Ambient Occlusion出力Color Rampノードで調整し、MixノードのMultiply乗算で合成します。接地面や影の部分の濃さを変更することができます。
  • Emission出力…上のライトの光にGlareノードでBloom効果をつけています。
  • Environment出力…背景の環境画像の光にBloom効果をつけ、外からの光が漏れているようにしました。
  • 机上のオブジェクトのみ…ここもGlareノードで、今度はSimple Starでキラキラした効果をつけています。

レンダーパスで個別に加工できるので、「特定の場所だけに何か効果をつけたい」という作業がとてもやりやすいです。

注意:
AOを最後に乗算してしまうと背景が真っ黒になってしまいます。それぞれのレンダーパスの合成法を適切にすることと、乗算と加算で合成する順番にも注意する必要があります。

例えば発光の光をAddで加算するときは最後の方に足すだけなので良いですが、黒い部分のある画像をMultiplyで乗算すると、黒い部分は0をかけて黒くする効果があるので、その黒くつぶされる部分が合成される前に乗算する必要があります。

スポンサーリンク

主なレンダーパス

主なレンダーパスについて簡単に紹介しておきます。

Data(データ系パス)

  • Combinedパス…コンポジット前の最終レンダリング結果。シーンでレンダリングされたものが出ます。通常の Render Result
  • Depth (Z深度)パス…カメラから最も近い可視サーフェスまでの距離。
    • カメラからの距離情報を持つパスです。被写界深度(フォグやボケ)のマスクとしてよく使われます。
    • Defocus ノードと組み合わせて 疑似的な被写界深度に使える。フォーカス地点などの情報が使えます。
  • Mistパス…Depth と同様だが、0.0〜1.0 に正規化された距離情報。World タブで範囲を設定可能。遠景をフェードアウトさせる用途向け
  • Positionパス…ワールド座標での位置情報
  • Normalパス…ワールド空間での法線方向。スタイライズ表現や、特殊なコンポジット処理に使われます。
  • Vectorパス…モーションベクトル。Vector Blur ノード用、モーションブラー有効時は無効化される
  • Grease Pencilパス…Grease Pencil の可視ストロークのみを出力。他の要素と分離して合成したいときに便利
  • Denoising DataパスCompositor の Denoise ノード用
    • Denoising Albedo
    • Denoising Normal

Light(光系パス)

  • Diffuseパス…反射や透過など特殊な光の効果を抜いた、物そのものの色
    • Direct…Diffuse または SSS BSDF に直接当たった光。まだ他のサーフェスで反射・透過していない光
    • Indirect…他のサーフェスで一度以上バウンスした後にDiffuse または SSS BSDF に当たった光
    • Color…Diffuse + SSS BSDF のマテリアルの色成分光の強さや色は含まれない

※Cycles ではSSS(Subsurface Scattering)は Diffuse パスに統合されている。専用の SSS パスは存在しないがShader AOVで工夫すれば作れる。

  • Glossy パス…鏡面反射・反射光成分を出力するパスです。
    • Direct…光源から直接当たったGlossy BSDF(反射)への光。ライトや環境光が、一度も他の面で反射・屈折せずに当たった成分
    • Indirect…他の面で反射・屈折したあとにGlossy BSDF に当たった光。いわゆる反射の中の反射、間接反射光
    • Color…Glossy BSDF 自体の色。Roughness や Mix Shader などを反映したマテリアル側の色情報のみ。光の強さや色は含まれない
  • Transmission パス…透過・屈折成分を扱うパスです。対象となるBSDF:Glass BSDF/Principled BSDF の Transmission/屈折を伴う透過表現※ Transparent BSDF は含まれません(マニュアル通り)
    • Direct…光源から直接Transmission(透過・屈折)BSDF に当たった光
    • Indirect…他の面で反射・屈折したあとにTransmission BSDF を通過した光
    • Color…Transmission BSDF 自体の色。ガラスの色味や、Principled の Transmission Color など。光の情報は含まれない
  • Volume パス光がボリューム(霧・煙・空気などの体積)を通過するときの成分を扱うパスです。
    • Direct:ライトから直接ボリュームに届いた光
    • Indirect:他の面やボリュームで反射・屈折された後にボリュームを通過した光
  • Direct / Indirect / Color は「光」と「色」を分離する仕組み

Other(Cycles)

  • Emissionパス…発光マテリアルからの光
  • Environmentパス…World(環境光)の発光成分 ※Film を Transparent にしている場合でも取得可能
  • Ambient Occlusionパス…AO 情報(0〜1 のグレースケール)●乗算合成向き
  • Shadow Catcherパス…Shadow Catcher 設定オブジェクトが受けた影
スポンサーリンク

マスク系パス

  • Cryptomatte(Cycles / EEVEE)パス…高機能なマスク生成用パス。透明・モーションブラー・DOF 対応。Object / Material / Asset 単位で分離可能

Shader AOV(カスタムパス)

  • マテリアルから任意の値を書き出せる
  • AOV Output ノードで使いたいデータを書きこむことで、コンポジットの出力で使えるようになる。

詳細は以下の記事に書いています↓

Light Groups(ライトグループ)

シーンで使用しているライトをライトグループに登録することで、そのライトが作用した部分をコンポジットで出力できます。

詳細は以下の記事に書いています。↓

スポンサーリンク

Cycles と EEVEE のレンダーパスの違い

Blenderでは、使用するレンダラー(Cycles / EEVEE)によって利用できるレンダーパスの種類や、最終画像への合成方法が異なります。

Cycles:物理ベースなパス合成

Cyclesでは、各レンダーパスは物理ベースの計算結果として出力され、それらを足し合わせることで最終的な画像(Combined)が作られます。

Cyclesは「パスを分解しても、理論上は元に戻せる」設計になっています。

EEVEE:リアルタイム向けのパス構成

EEVEEでもレンダーパスは出力されますが、Cyclesとは性質が大きく異なります。EEVEEはリアルタイムレンダラーのため、

  • 一部のライティング計算が省略されている
  • 複数の処理が Combined パスにまとめられている

という特徴があります。

そのため、EEVEEのレンダーパスは「完全に分解・再合成できる」ものではなく、調整や補助のために使われることが多いです。

また、様々な制限がありますが、今回はあまりEEVEEのレンダーパスには触れません。

スポンサーリンク

まとめ

レンダーパスは、
「レンダリング後の自由度を上げるための仕組み」です。

最初は難しく感じるかもしれませんが、

  • 影だけ調整する
  • 発光だけ強調する
  • 奥行きでボケをかける

といった小さな使い方から始めるのがおすすめです。

レンダーパスを理解すると、レンダリングとコンポジットが分断された作業ではなく、一続きのワークフローとして見えてくるようになります。
効率的な作業のために使える機能ですのでぜひ使ってみてください。

コメント