ユニバーサルレンダーパイプラインのバージョン 7.2.0 にアップグレードする
このページには、Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) の旧バージョンを最新バージョンにアップグレードする際に役立つ情報が記載されています。
コンソール向けのプロジェクトのビルド
PlayStation 4 または Xbox One 向けのプロジェクトをビルドするには、サポート対象の各プラットフォーム用に追加パッケージをインストールする必要があります。
詳細については、コンソール向けのビルド に関するドキュメントを参照してください。
深度テクスチャが必要
URP の以前のバージョンでは、ポストプロセスを有効にした場合は、常にパイプラインで深度が必要でした。ポストプロセス統合の機能改善を実施し、Depth of Field、Motion Blur、または SMAA エフェクトを有効にした場合にのみ、パイプラインで深度が必要になるようにしました。これにより、多くの場合パフォーマンスが向上します。
ポストプロセスを使用するカメラで深度がデフォルトで要求されなくなったため、ソフトパーティクルなど他のエフェクトで深度を使用する場合は、カメラで深度が必要なことを手動で示す必要があります。
すべてのカメラで深度を要求するようにするには、パイプラインアセット の Depth Texture
オプションを有効にします。個々のカメラで深度を要求するようにするには、カメラの Inspector で Depth Texture
オプションを On
に設定します。
メインライトからのシャドウのサンプリング
以前の URP のバージョンでは、メインライトでシャドウカスケードが有効になっていると、スクリーンスペースパスで影が解像されました。現在は、不透明または透明なオブジェクトのレンダリング中、常にパイプラインにより影が解像されるようになりました。これにより一貫性が確保され、影に関する多くの問題が解決しました。
カスタム HLSL シェーダーで _ScreenSpaceShadowmapTexture
テクスチャをサンプリングする場合は、代わりに GetMainLight
関数を使用してシャドウをサンプリングするようにアップグレードする必要があります。
例:
float4 shadowCoord = TransformWorldToShadowCoord(positionWorldSpace);
Light mainLight = GetMainLight(inputData.shadowCoord);
// ここで影を使用して、リアルタイムのオクルージョンを適用できます
half shadow = mainLight.shadowAttenuation;
また、カスタムシェーダーが正確に影を受けるよう、.shader ファイルで以下を定義する必要があります。
# pragma multi_compile _ _MAIN_LIGHT_SHADOWS
# pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
透明なオブジェクトで影を受ける
シャドウカスケードの使用時に、透明なオブジェクトで影を受けられるようになりました。パフォーマンスを向上させるため、透明なオブジェクトで影を受ける機能を任意で無効にすることもできます。これを行うには、フォワードレンダラーアセットで Transparent Receive Shadows
を無効にします。