深度テクスチャまたは深度法線テクスチャをカメラから出力するには、DepthTextureMode を使用します。
これは、画面サイズの深度テクスチャを作ります。
深度テクスチャは、シャドウキャスターレンダリング (ShadowCaster パスタイプ) と同じシェーダーパスを使用してレンダリングされます。そのため、拡張機能により、シェーダーがシャドウキャスティング (影付け) をサポートしていない場合 (つまり、該当のシェーダーにも、どのフォールバックにも、シャドウキャスターのパスがない場合)、そのシェーダーを使用するオブジェクトは深度テクスチャに表示されません。
addshadow ディレクティブを追加することでシャドウパスの生成が可能です。マテリアルとシェーダーがレンダーキュー <= 2500 に設定されている “不透明な” オブジェクトのみ、深度テクスチャにレンダリングされることに注意してください。
画面サイズの 32 ビット (8 ビット/チャンネル) テクスチャをビルドします。ビュー空間法線は R&G チャンネルに、深度は B&A チャンネルにエンコードされます。法線はステレオ投影法でエンコードされ、深度は 2 つの 8 ビットチャンネルにパックされた 16 ビット値です。
UnityCG.cginc インクルードファイルには、エンコードされたピクセル値から深度と法線をデコードするための、ヘルパー機能 DecodeDepthNormal があります。返される深度の範囲は 0 から 1 となります。
深度と法線のテクスチャの使用例については、ランタイムのシェーダーの置き換えまたはポストプロセスとフルスクリーンエフェクトでのアンビエントオクルージョンを参照してください。