Version: Unity 6.0 (6000.0)
言語 : 日本語
カメラ出力の概要
カメラからのモーションベクトルテクスチャの出力

カメラからの深度テクスチャの出力

深度テクスチャまたは深度法線テクスチャをカメラから出力するには、DepthTextureMode を使用します。

DepthTextureMode.Depth テクスチャ

これは、画面サイズの深度テクスチャを作ります。

深度テクスチャは、シャドウキャスターレンダリング (ShadowCaster パスタイプ) と同じシェーダーパスを使用してレンダリングされます。そのため、拡張機能により、シェーダーがシャドウキャスティング (影付け) をサポートしていない場合 (つまり、該当のシェーダーにも、どのフォールバックにも、シャドウキャスターのパスがない場合)、そのシェーダーを使用するオブジェクトは深度テクスチャに表示されません。

  • シャドウキャスティング (影付け) パスがある別のシェーダーにフォールバックさせる、あるいは
  • サーフェスシェーダーを使用する場合は、addshadow ディレクティブを追加することでシャドウパスの生成が可能です。

マテリアルとシェーダーがレンダーキュー <= 2500 に設定されている “不透明な” オブジェクトのみ、深度テクスチャにレンダリングされることに注意してください。

DepthTextureMode.DepthNormals テクスチャ

画面サイズの 32 ビット (8 ビット/チャンネル) テクスチャをビルドします。ビュー空間法線は R&G チャンネルに、深度は B&A チャンネルにエンコードされます。法線はステレオ投影法でエンコードされ、深度は 2 つの 8 ビットチャンネルにパックされた 16 ビット値です。

UnityCG.cginc インクルードファイルには、エンコードされたピクセル値から深度と法線をデコードするための、ヘルパー機能 DecodeDepthNormal があります。返される深度の範囲は 0 から 1 となります。

深度と法線のテクスチャの使用例については、ランタイムのシェーダーの置き換えまたはポストプロセスとフルスクリーンエフェクトでのアンビエントオクルージョンを参照してください。

追加リソース

カメラ出力の概要
カメラからのモーションベクトルテクスチャの出力