ユニバーサルレンダーパイプラインのバージョン 12 にアップグレードする
このページでは、Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) の旧バージョンからバージョン 12.0.x にアップグレードする方法を説明します。
ビルトインレンダーパイプラインのプロジェクト用に作成したアセットを、URP と互換性のあるアセットに変換する方法については、レンダーパイプラインコンバータ のページを参照してください。
URP 11.x.x からのアップグレード
フォワードレンダラーアセットの名称が、ユニバーサルレンダラーアセットに変わりました。URP 12 が含まれている Unity エディターで既存のプロジェクトを開くと、フォワードレンダラーアセットがユニバーサルレンダラーアセットに更新されます。
ユニバーサルレンダラーアセットには、フォワードレンダリングパスまたはディファードレンダリングパスを選択できる Rendering Path プロパティが含まれています。
ClearFlag.Depth
メソッドでは、ステンシルバッファが暗黙的に消去されなくなりました。新しいメソッドのClearFlag.Stencil
を使用してください。URP 12 には レンダーパイプラインコンバータ 機能が実装されています。この機能は、これまで Edit > Render Pipeline > Universal Render Pipeline > Upgrade... から実行できたアセットのアップグレード機能を置き換えるものです。
URP 10.0.x–10.2.x からのアップグレード
以下のシェーダーグラフのシェーダーのファイル名が変わりました。新しいファイル名にはスペースが含まれません。
Autodesk Interactive
Autodesk Interactive Masked
Autodesk Interactive Transparent
コードで
Shader.Find()
メソッドを使用してシェーダーを検索している場合は、Shader.Find("AutodeskInteractive)
のようにシェーダー名からスペースを削除してください。
URP 7.2.x 以降のリリースからのアップグレード
- URP 12.x.x は Post-Processing Stack v2 パッケージをサポートしていません。プロジェクトで Post-Processing Stack v2 パッケージを使用している場合は、まずそのパッケージを使用するエフェクトを移行します。
DepthNormals パス
バージョン 10.0.x から、URP が _CameraNormalsTexture
という法線テクスチャを生成できるようになりました。このテクスチャにカスタムシェーダーでレンダリングするには、DepthNormals
という名前のパスを追加します。例については、Lit.shader
の実装を参照してください。
スクリーンスペースアンビエントオクルージョン (SSAO)
URP 10.0.x には、スクリーンスペースアンビエントオクルージョン (SSAO) エフェクトが実装されています。
カスタムシェーダーで SSAO エフェクトを使用する場合は、SSAO に関連する以下のエンティティを考慮してください。
*_SCREEN_SPACE_OCCLUSION
キーワード。
Input.hlsl
のInputData
構造体に新しい宣言float2 normalizedScreenSpaceUV
が含まれている。Lighting.hlsl
にAmbientOcclusionFactor
構造体と間接的および直接的なオクルージョンを計算するための変数が含まれている。struct AmbientOcclusionFactor { half indirectAmbientOcclusion; half directAmbientOcclusion; };
Lighting.hlsl
に SSAO テクスチャをサンプリングするための以下の関数が含まれている。half SampleAmbientOcclusion(float2 normalizedScreenSpaceUV)
Lighting.hlsl
に以下の関数が含まれている。AmbientOcclusionFactor GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV)
カスタムシェーダーで SSAO をサポートするには、DepthNormals
パスと _SCREEN_SPACE_OCCLUSION
キーワードをシェーダーに追加します。例として、Lit.shader
を参照してください。
カスタムシェーダーにカスタムライティング関数が実装されている場合は、GetScreenSpaceAmbientOcclusion(float2 normalizedScreenSpaceUV)
関数を使用して、ライティングの計算用に AmbientOcclusionFactor
の値を取得します。
シャドウの法線バイアス
- 0.x では、Punctual Light との連携を強化するために、シャドウの法線バイアスを適用するための式が若干修正されました。 そのため、過去のリビジョンと影の輪郭を完全に一致させるには、一部のシーンでパラメーターの調整が必要になる場合があります。通常は、ディレクショナルライトで 1.0 の代わりに 1.4 を使用すれば十分です。
中間テクスチャ
以前は、レンダラーにアクティブな Renderer Feature があった場合、URP は強制的に中間レンダラーを通じてレンダリングを行っていました。これは、一部のプラットフォームではパフォーマンスに大きな影響を与えます。そのため、Renderer Feature は ScriptableRenderPass.ConfigureInput
を使用して入力を宣言することになりました。この情報は中間テクスチャを介したレンダリングが必要かどうかを自動的に判断するために使用されます。
互換性を確保するため、新しいプロパティの Intermediate Texture がユニバーサルレンダラーに追加されました。これにより、新しい挙動を使用するか、中間テクスチャを強制的に使用するかを選択できます。後者は Renderer Feature が ScriptableRenderPass.ConfigureInput
を使用して入力を宣言していない場合にのみ使用します。
何らかの Renderer Feature (URP に含まれているものを除く) を使用していたすべての既存のユニバーサルレンダラーアセットは、既存の設定が正しく機能し続けるよう、強制的に中間テクスチャを使用するようにアップグレードされます。新しく作成されたユニバーサルレンダラーアセットは、デフォルトで新しい挙動を使用するように設定されます。
URP 7.0.x-7.1.x からのアップグレード
まず、URP 7.2.0 にアップグレードします。ユニバーサルレンダーパイプラインのバージョン 7.2.0 にアップグレードする を参照してください。
URP 8.x.x は Post-Processing Stack v2 パッケージをサポートしていません。プロジェクトで Post-Processing Stack v2 パッケージを使用している場合は、まずそのパッケージを使用するエフェクトを移行します。
LWRP から 12.x.x へのアップグレード
- LWRP から URP 12.x.x. に直接アップグレードすることはできません。まず LWRP から URP 11.x.x にアップグレードする手順に従い、次に URP 11.x.x から URP 12.x.x. にアップグレードしてください。