Version: Unity 6.0 (6000.0)
言語 : 日本語
URP のディファードレンダリングパスの G バッファレイアウト
シェーダーを URP のディファードレンダリングパスと互換性のあるものにする

URP のディファードレンダリングパスでの正確な G バッファ法線の有効化

ディファードレンダリングパスでは、Unity は 法線を G バッファに格納します。

デフォルトでは、Unity は各法線を法線テクスチャの RGB チャンネルでエンコードし、x、y、z に各 8 ビットを使用します。値は、精度を損なうことなく量子化されます。特にモバイル GPU でパフォーマンスが向上しますが、滑らかなサーフェスでカラーバンディングアーティファクトが発生する可能性があります。

法線の品質を向上させるには、ユニバーサルレンダラーアセットで Accurate G-buffer normals プロパティを有効にします。以下の手順に従ってください。

  1. Project ウィンドウで、ユニバーサルレンダラーアセットを選択します。
  2. Inspector ウィンドウで、Renderer セクションに移動します。
  3. Accurate G-buffer normalsOn に設定します。

Accurate G-buffer normalsOn に設定すると、Unity は八面体エンコーディングを使用します。法線ベクトルの値がより正確なものになりますが、エンコーディングおよびデコーディング処理により、GPU の負荷が増加します。エンコードされた法線ベクトルの精度は、フォワードレンダリングパスでサンプリングされた値の精度と同様になります。

以下の図は、カメラがゲームオブジェクトの間近にあるときの 2 つのオプションの視覚的な違いを示しています。

正確な G バッファ法線、2 つのオプションの視覚的な違い
正確な G バッファ法線、2 つのオプションの視覚的な違い

このオプションでは、以下はサポートされません。

  • スクリーンスペースデカール技法とともに使用する場合のデカール法線ブレンディング。
  • Terrain (地形) のブレンディングが 4 つ以上の Terrain レイヤーの場合。これは、エンコードのビット特性 (2 x 12 ビット) により、八面体エンコーディングを使用してエンコードされた異なるレイヤーの法線をブレンドできないためです。

追加リソース

URP のディファードレンダリングパスの G バッファレイアウト
シェーダーを URP のディファードレンダリングパスと互換性のあるものにする