Universal Rendering PipelineのPost Processingについてのまとめ
Universal Rendering Pipeline(以下URP)の公式ドキュメントを読みつつ、何か残そうと思い。最低限必要なことしかまとめていませんので、注意してください。逆にドキュメントでは不順分だと思った項目については別のソースからの情報を入れています。読みたいところから適宜更新していきます。
Post-Processing
〇実装方法
URPではPostProcessingを標準搭載としているので、何か別のパッケージをインストールする必要はない。HDRP(High-Definition_Rendering_Pipeline)でもポストプロセスの実装方法は同じっぽい。(HDRPについては詳しく見てないので深く触れない。)
簡単な実装方法として、
1.CameraにUniversalAdditionalCameraDataがあるのを確認(URPでは標準で付いている)。またカメラコンポーネントのPost-Processingの項目にチェック。
2.空のGameObjectにVolumesコンポーネントを付けて、Newを押すと、Volume profileというアセットファイルが作成される。
3.Volumeコンポーネントのadd OverRidesで付けたいエフェクトを選ぶ。
〇Volumesについて
ポイント1
上で書いたように、Volumesコンポーネントをいじることで画面のエフェクトを調整することができる。しかし、Volumeコンポーネントに何かしらのデータが詰まっているわけではなく、VolumesはVolume Profileというアセットファイルへの参照が詰まっているだけである。
ポイント2
Volumeにはシーン内すべてのカメラにエフェクトをかけるGlobalモードと、コライダーをつけてVolumeコンポーネントが指定したエリアに位置するカメラにのみ影響を与えるLocalモードがある。
ポイント3
複数のVolumeコンポーネントをシーン内に散らばせておくことで色々な表現ができる。(森に入った瞬間に霧がかかる、など。)
Volumeコンポーネントのプロパティー
・Mode...上述したようにLocalを選択すると、自分のコライダー内のカメラのみに影響を与えるようになる。
・Blende Distance...エフェクトのブレンドを始めるカメラとVolumeコンポーネントオブジェクトとの最低距離。値を調節することでVolumeに近づくにつれじわじわエフェクトがかかっていく表現ができる。
・weight...詳しいことは分からないがBlendDistanceの表現に影響を与える数値。
・Priority...Volumeの優先度。複数のVolumeがあるとき、この値が大きいほうを使用する。
・Profile...Volumeが参照しているVolumeProfileが載っている。
Volume Overridesについて
VolumeProfileはポストプロセスについての様々な情報を持っており、それぞれデフォルト値が決まっている。デフォルト値ではなく、ユーザーがこれを書き換えたものをVolume Overridesと呼んでいるっぽい。
VolumeコンポーネントのAdd Overrides項目ではそれそぞれの値の左にチェックボックスがあり、これを付けるとURPが初期値ではなくユーザーが決めた値を使うようになる。
エフェクトの種類についてふれているとキリがないので公式ドキュメントを参照してください↓
https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@8.2/manual/EffectList.html