Camera は深度、深度+法線、モーションベクトルのテクスチャを生成できます。ポストプロセスエフェクトやカスタムライティングモデルの実装に使用できる最小限の G バッファテクスチャです。
これらは主にエフェクトで使用されます。例えば、ポストプロセスエフェクトでは、深度情報がよく使用されます。
深度テクスチャのピクセル値は 0 から 1 の範囲で、非線形分布です。使用する設定とプラットフォームによりますが、一般に精度は 32 ビットか 16 ビットです。深度テクスチャから読み込む場合、0 から 1 の範囲の高精度の値が返されます。カメラからの距離、または他の線形の 0 から 1 の値を取得する必要がある場合、ヘルパーマクロ を使って手動で計算します。
深度テクスチャは、現段階で一般的に使用されている多くのハードウェアとグラフィックス API でサポートされています。以下は特別な要件のリストです。
Camera.depthTextureMode 変数を使って、カメラの深度テクスチャをスクリプトから有効にできます。また、Shader Replacement 機能を使って、同様のテクスチャを自身でビルドすることもできます。
3 つの使用可能な深度テクスチャモードがあります。
これらのフラグを使って、上記のテクスチャのどのような組み合わせも指定することができます。
深度テクスチャは、使用するレンダリングパスやハードウェアに応じて、実際の深度バッファから直接取得されたり、別のパスにレンダリングされたりします。通常、ビルトインレンダーパイプラインのディファードシェーディングレンダリングパスを使用する場合、深度テクスチャは G バッファのレンダリングによって生成されるため、 何もしなくても取得できます。
有効な場合、MotionVectors テクスチャは常に別のレンダーパスから取得されます。Unity はこのバッファに動いているオブジェクトをレンダリングし、その動きを前のフレームから現在のフレームに描画します。