個人的なメモをインターネットの片隅に添えさせていただきます。万一、誤った点がありましたらご一報のほどよろしくお願いいたします。レンダリング周りについて勉強してみた本文のまえに従来のビルトインレンダリングパイプラインではOnRenderImageなどcameraのコールバック系を利用することで自作のポスプロ処理ができました。URPではこのやり方はサポートされません。*1ので以前はppsv2にカスタムエフェクトを追加して自作のポスプロ処理をしたのです*2が、2019.3のURPではppsはppsv3となり、若干仕様が変わったため従来通りのやり方ではうまくいきません。*4ので自作のレンダーパスを追加することで自作のポスプロ処理をやっていきます。AssetScriptable(Custom)RendererScriptableRenderFeatureScriptableRenderPassあたりです。settingsで割り当てると、ビルトインからURPに切り替わります。SRP間の切り替えはできません。*5*6Scriptable(Custom)RendererScriptableRendererはcullingやlightingなど一連のレンダリング機能を実装したもので、これをURPAssetのRendererListに割り当てると、CameraコンポーネントからRendererを選択することができます。*7RendererのリソースはScriptableRendererDataでselializedされます*8また、Rendererは後述のRenderFeatureを追加することで拡張できます。2019.3URPでは(singlepass)ForwardRendererと、2DRenderer(まだexperimental)が付属されており(今後defferdにも対応していくみたい)、これらにRenderFeatureを追加するなどしてカスタムしていきます。objectで、これをRendererのRenderFeaturesListに追加することでRendererをカスタムします。featureを備えていて、またScriptableRenderFeatureを継承したスクリプトを作成することでさらに自由度の高いcustomfeatureを追加することができます。*10ScriptableRenderPassRendererを拡張するための個々のレンダリングパスを実装したもの。他のrendereventのレンダリングパスもScriptableRenderPassによって実装されています。ここでCommandBuffer組み立て処理をします。2019.3.0f6最初のテンプレはビルトインを選択して、あとからpackagemanagerでURPをインストールします。*13まずURPAssetを作成します。Asset作成すると、URPAssetといっしょにRendererも生成され、URPAssetのRenderListに割り当てられていることがわかります。Rendererをカスタムするため、RendererFeatureを作成します。ScriptableRenderFeatureを継承したスクリプトをつくって、rgbを反転させるポスプロ処理をやっていきます。}}すると、RenderFeatureListにつくったfeatureが追加できるようになるので、追加します。ScriptableRenderPipelineAssetsにURPAssetsを割り当てます。以上で、(ppsの描画後に)rgbを反転させるレンダーパスを追加できました。renderfeatureにシリアライズ変数として実装したbool値を変更することで確認できます。featrureのスクリプトテンプレがつくれるppsv3の公式のカスタムエフェクトの実装はまだないけど、volumecomponentを継承したクラスとrenderfeatureで実装できる(rendereventがポスプロまわりに制限されないppsのカスタムエフェクト?)*16わからないrenderobjectsでcommandbuffer.blitっぽい処理をしたい、けどできない。パイプラインを拡張する*13:もちろんテンプレからURPを選択しても問題ないのですが、URPAssetの切り替えが動作しなくなってしまった(rendererが反映されなかった....)ので、こうしています。月別アーカイブはてなブログをはじめよう!cakemasさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。