見出し画像

Unity URP のポストプロセッシング

以下の記事を参考にして書いてます。

Post-processing in the Universal Render Pipeline

1. URPのポストプロセッシング

「URP」(Universal Render Pipeline)には独自の「ポストプロセッシング」(後処理)の実装が含まれています。従来の「ポストプロセッシング v2」との互換性はありません。

この実装では、「HDRP」(High Definition Render Pipeline)と同じ「ボリュームシステム」を使用します。他のボリュームを追加するのと同じ方法で、カメラに後処理エフェクトを追加できます。

以下の画像は、URPのポストプロセッシングありとなしを示しています。

◎ ポストプロセッシングなし

画像1

◎ ポストプロセッシングあり

画像2

2. モバイル用のURPでのポストプロセッシング

ポストプロセッシングエフェクトは、多くのフレーム時間を消費する可能性があります。モバイルにURPを使用している場合、これらの効果はデフォルトが最も「モバイルフレンドリー」です。

・Bloom (with High Quality Filtering disabled)
・Chromatic Aberration
・Color Grading
・Lens Distortion
・Vignette
【注意】被写界深度については、ローエンドのデバイスにはガウス被写界深度を使用することをお勧めします。コンソールおよびデスクトッププラットフォームの場合は、Bokeh Depth of Fieldを使用します。
【注意】モバイルプラットフォームでのアンチエイリアスについては、「FXAA」を使用することをお勧めします。

3. VR用のURPでのポストプロセッシング

VRアプリでは、特定のポストプロセッシングエフェクトが、映像酔いを引き起こす可能性があります。映像酔いを軽減するには、VRのビネット効果を使用し、VRのレンズの歪み、色収差、モーションブラーの効果を回避してください。

4. Volume

「URP」は、「Volumeフレームワーク」を使用します。各Volumeは、グローバルまたはローカルの境界を持つことができます。それぞれに、最終的な値を計算するために、カメラの位置に応じて「URP」が補間する値が含まれています。たとえば、ローカルボリュームを使用して、フォグの色や密度などの環境設定を変更し、領域の雰囲気を変更できます。

「Volumeコンポーネント」は、カメラを含む任意のゲームオブジェクトに追加できますが、Volumeごとに専用のゲームオブジェクトを作成することをお勧めします。「Volumeコンポーネント」自体には実際のデータ自体は含まれず、代わりに補間する値を含む「Volumeプロファイル」が参照されます。「Volumeプロファイル」には、全てのプロパティのデフォルト値が含まれており、デフォルトでは非表示になっています。これらのプロパティを表示または変更するには、Volumeを「Volumeプロファイル」に追加する必要があります。

Volumeには、他のVolumeとの相互作用を制御するプロパティも含まれています。シーンには多くのVolumeを含めることができます。「Global Volume」はカメラがシーン内のどこにあってもカメラに影響し、「Local Volume」はコライダーの境界内にカメラをカプセル化する場合にカメラに影響します。

実行時に、「URP」はシーン内のアクティブなゲームオブジェクトにアタッチされている有効なVolumeをすべて調べ、最終的なシーン設定への各Volumeの寄与を決定します。「URP」は、上記のカメラ位置とVolumeを使用して、この寄与を計算します。次に、寄与がゼロでない全てのVolumeを使用して、全ての「Volumeコンポーネント」の全てのプロパティの補間された最終値を計算します。

Volumeには、「Volumeコンポーネント」の様々な組み合わせを含めることができます。たとえば、1つのVolumeが「Procedural Sky Volumeコンポーネント」を保持し、他のVolumeが「Exponential Fog Volumeコンポーネント」を保持する場合があります。

5. Volumeのプロパティ

◎ Mode
Volumeがカメラに影響を与える可能性があるかどうかを計算する方法を指定します。

・Global : Volumeに境界がなく、シーン内のすべてのカメラに影響を与えることができる。
・Local : Volumeの境界を指定して、Volumeが境界内のカメラのみに影響するようにできる。Volumeのゲームオブジェクトにコライダーを追加し、それを使用して境界を指定。

◎ Blend Distance
「URP」がブレンドを開始するVolumeのコライダーからの最遠距離を指定します。値が0の場合、「URP」はエントリ時にこのVolumeをすぐに適用します。このプロパティは、ModeでLocalを選択した場合にのみ表示されます。

◎ Weight
Volumeがシーンに与える影響の量を指定します。「URP」はこの乗数を、カメラの位置とBlend Distanceを使用して計算する値に適用します。

◎ Priority
「URP」はこの値を使用して、Volumeがシーンに等しい量の影響を与える時に使用するVolumeを指定します。「URP」は優先度の高いVolumeを最初に使用します。

◎ Profile
「URP」がこのVolumeを処理するために使用するプロパティを格納するVolumeコンポーネントを含むVolumeプロファイルアセットを指定します。

6. Volumeプロファイル

Profileには、「Volumeプロファイル」を指定します。これは、「URP」がシーンのレンダリングに使用するプロパティを含むアセットです。この「Volumeプロファイル」を編集するか、別の「Volumeプロファイル」をProfileに指定することができます。また、NewボタンとCloneボタンで「Volumeプロファイル」を作成およびクローンすることもできます。

7. Local Volumeの設定

VolumeのModeでLocalを選択した場合は、トリガーコライダーをゲームオブジェクトに接続して、その境界を定義する必要があります。Volumeを選択してインスペクタで開き、「Add Component → Physics → Box Collider」を選択します。Volumeの境界を定義するには、Box ClliderのSizeとTransformのScaleを調整します。

単純なBox Colliderから複雑なMesh Colliderまで、あらゆるタイプの3Dコライダーを使用できます。

8. エフェクト一覧

「URP」で使用可能なポストプロセッシングは、次のとおりです。

Bloom
Channel Mixed
Chromatic Aberration
Color Adjustments
Color Curves
Depth of Field
Film Grain
Lens Distortion
Lift Gamma Gain
Motion Blur
Panini Projection
Shadows Midtones Highlights
Split Toning
Tonemapping
Vignette
White Balance


この記事が気に入ったらサポートをしてみませんか?