昨日の応用で、一部のモデルにだけポストプロセスがかからないようにします。
一部のモデルだけポストプロセスの影響をかけないようにする
以前に紹介した方法はカメラのスタックが現在使えない関係上、使用できなくなりました。そのため、一部にのみポストプロセスをかけないといった設定を実現するには、少しアプローチを変える必要があります。
とはいえ悪い話ではありません。以前のアプローチはレイヤーを何度も変える関係上、パフォーマンス(特にPhysics関連のコンポーネントを持っている場合)に影響がある可能性がありましたが、今回はレイヤーを何度も変えないので多分問題は無いでしょう。
基本的には昨日のアプローチと殆ど同じです。つまり レンダリングしてポストプロセス描画後に特定のレイヤーに所属するメッシュを描画する という事です。ただし今回は不透明を指定しCameraのDepthを上書きしません。これにより 奥行判定も綺麗に出る事が期待出来ます。
手順
手順は殆どが昨日の焼き直しです。
-
Create > Rendering > ***Pipeline > Forward Renderer
でCustom Forward Rendererアセットを作ります。その後、Lightweight Renderer Pipeline AssetのRender TypeをCustomに設定し、Custom Forward Rendererアセットを登録。 Project Settings> Tag and Layer
を選択し、WithoutPostProcess(任意の名前)
的なレイヤーを作る。- ポストプロセス対象外にしたいGameObjectを
WithoutPostProcess
所属にする 1
で作成したCustom Forward Rendererアセットを選択。Default Layer Mask
からWithoutPostProcess
を外す。Render Features
の+
を押す。追加するパスはRendere Object
を選択。Name
をWOPP(任意)
に変更。Event
をAfter Rendering
に変更。
半透明も使用したい場合、追加でRenderer Feature
の+
を押し、パスを追加。上の手順の7.
と8.
を設定後、Filters>Queue
をTransparent
にすればよいです。
注意点
「ポストプロセスの影響を受けない」は、単純なカラーコレクション等なら多分問題はないのですが、DOFやBloomといった色を滲ませる表現がある場合は微妙な表現になるかもしれません。