この短いチュートリアルでは、レンダー画像内のポイントの距離値を取得する方法を紹介します。これは、正確な値に基づいたCompositingエフェクトを実装する際に便利で、たとえば特定の距離以遠でのみ有効なマスクを作成する場合などに役立ちます。
動画の書き起こし
こんにちは、みなさん!ご存じのとおり、CompositingにおけるDepth Render Passでは、仮想カメラからの距離を32ビットのグレースケール画像として取得できます。

以前、このデータについて、正規化あり・なしの使い方や、フォグや距離ベースのエフェクトを実装する方法を紹介するチュートリアルを公開しました。
この短いチュートリアルでは、レンダー画像内のポイントの距離値を取得する方法を紹介します。これは、正確な値に基づいたCompositingエフェクトを実装する際に便利で、たとえば特定の距離以遠でのみ有効なマスクを作成する場合などに役立ちます。


ここがポイントです:Image Editorで画像を開き、ある点を右クリックすると、BlenderはそのピクセルのRGBA値を下部バーに表示します。特にAlphaチャンネルはこの目的に非常に役立ちます。この方法で元のレンダーを見ながら興味のあるポイントを見つけ、クリックしてAlpha欄で距離値を読み取ることができます。それでは実際にやってみましょう。

レンダリングを開始する前に、PropertiesエディターのView LayerタブでDepth Passを有効にします。このタブでは、距離情報はZと表示されます。

レンダリングを開始したら、Compositor editorで、Render LayersノードのDepth出力をViewerノードのAlpha入力に接続します。

次に、Image Editorを開き、その中でViewer画像を開きます。

さて、画像の上で右クリックすると、画像内の各点について、カメラからの距離がBlender単位でAlphaフィールドに表示されます。World Background上のポイントを右クリックすると、100億という非常に大きな値が表示され、これは仮想宇宙のほぼ無限の距離を示すために使われています。

この方法は、Depth Passがそのままでも、正規化されていても機能します。違いは、正規化されていない値はオブジェクトと仮想カメラとの実際の距離(Blender単位)を表すのに対し、正規化された値は0から1の範囲で、0がカメラに最も近い点、1が最も遠い点となることです。これらの点については、冒頭で紹介したチュートリアルで解説しました。

Depth Passが正規化されていない場合、墓石の1つをクリックすると、およそ3585という値が得られます。仮想カメラとその値の間にあるすべてのオブジェクトに対して白、その他には黒になるマスクを作るには、Compositor editorに戻り、ノード構成にMath Less Thanノードを追加し、Depth出力を新しいノードの最初のValue入力に接続し、2つ目の入力におよそ3585を設定すればOKです。


さて、これで今回のショートチュートリアルは終了です!ほとんどのビデオチュートリアルと違い、このチュートリアルのPDF版は現在ダウンロードできません。ただし、他の多くのビデオチュートリアルのPDF版が掲載されたページへのリンクが説明欄にあります。いずれにしても、今こそチャンネル登録と通知のオンをする絶好のタイミングです!またすぐにお会いしましょう!