ZDepthパスの作成
・Image Planeを作成
MantraノードにてZDepthパス用のimage Planeを作成。
Mantraノード -> Propertiesタブ -> Outputタブ -> Extra Image Planes
+ボタンでイメージプレーンを追加し、VEX VariableパラメータでPzを指定。
Quantizeは最も高精度な32bit Floatにしておくのがいい。
以降のレンダリングで、同時にZDepthパスがレンダリングされるようになる。
ZDepthパスの確認
MPlayやRender Viewで、表示するパスを切り替える。
ZDepthパスの最適化
アンチエイリアスがかかった画像に対するZDepthパスイメージは、カラーパスイメージと同様にアンチエイリアスがかかっているため、正しくない深度情報になっている。
また、Depthパスのアンチエイリアス処理は、コンポジットの段階で処理するのが最も柔軟に扱えるので、ZDepthパスだけアンチエイリアスをオフにしてレンダリングする。
・Image Planeの設定
Sample Filter=Closest Surface
Pixel Filter=Closest Sample Filtering
この設定でアンチエイリアスがオフになるはずだが、ならない・・・とりあえずこのまま進める。
ZDepthパスをimgコンテキストで利用
・大枠のimgコンテキストでの作業フロー
fileノードを使用してファイルを読み込み、必要に応じて各種ノードを接続し、画像合成を進める。
使用するビューは Composite View
Composite Viewも、Render ViewやMPlayと同様の操作で表示チャンネルの切り替えなどが行える。
・imgコンテキストのノード
imgコンテキストのノードは、上に入力コネクタ、下に出力コネクタ、左にマスク入力コネクタを持つ
マスクはその他のコンポジットソフトのように、エフェクトの強さを操作するといった場合に使える。
・ZDepthパスの使用準備
深度情報を使用する処理を行う際は、まずDepth of Field(DOF)ノードを作成し、以降の処理で使うマスク画像を生成する。
マスク画像はチャンネル名[M]になる。
このマスク画像は、DOFノードを有効化し、Mチャンネルを表示して確認できる。
Mチャンネルを表示しながら焦点の設定を行うと作業しやすい。
・Focus Distance パラメータ
焦点距離
カメラからの各サンプリングポイントへの距離は、そのままZDepthパスのピクセルに焼きこまれる。
焦点をあわせるポイントのおおよその距離を知りたいときは、Pzチャンネル表示中にIキーを押して各ピクセルの情報を見られるようにし、焦点を合わせたいピクセルの深度を調べる。
この例では、8.2239がそのピクセルが持つ深度の値。
・Depth Adjust
焦点の合う幅。
・Distance Adjustment
焦点距離と焦点のドロップオフを調整できる。(挙動を見る限り、焦点距離がわかりにくくなりそうなので、極力使いたくない)
・Default Mask Value
ZDepth情報を持たないピクセルが持つ値を指定。
Fake DOF
Depth Of Fieldから出力されるマスク画像を、DefocusノードのMaskに入力することでDOFエフェクトをかけられる。
その際、DefocusノードのMaskタブで、マスクに使用するチャンネルをMに指定して、入力されたMaskチャンネルを有効化する。
・Defocus
ぼかしの強さ
・Defocus Shape
シャッター形状
・Per-Pixel Defocus
どう動作しているか不明だけど、これがオンになっていないと、画像にかかるブラーがただのブラーになっており、レンズボケというよりは画像をにじませただけの状態になる。
Fog
Defocusと同様にFogノードを使用してフォグを追加できる。