9.8K Views
April 14, 23
スライド概要
2022年5月に銀座Unityもくもく会でLTした資料です。
フリーランスのTAです。 主にもくもく会でのLT資料などをアップロードしたいと思います。
URPでのカスタムポストエフェクト おかひろ
自己紹介 おかひろ Twitter:@okahiro_p フリーランスのゲームプログラマー/TA Maya/Blenderのpython勉強中 個人制作でスマートフォン向けの東方二次創作ゲームをリリース
ポストエフェクトとは? 描画結果にエフェクトをかけて見た目を変える 手法のことをここでは指します 例:Bloom、DepthOfField、ColorAdjustments、Vignette・・・ 遠くの建物がボケている DepthOfField ポストエフェクトなし 明るい部分が強調されている Bloom ポストエフェクトあり 画面の四隅がぼんやり暗い Vignette
標準のポストエフェクト URPではPostProcessingStack v3(?)が標準ぽい v2も使えるらしいが、そのうちサポートされなくなる模様 URP(v3)でもポストエフェクトは標準で結構な数が用意されている Bloom DepthOfField ColorAdjustments Vignette Choromatic Aberration Lens Distortion など
カスタムポストエフェクト 標準のポストエフェクトでできないことは、カスタムポストエフェクトを作成 して表現する 例 モザイク
カスタムポストエフェクト 例 水彩風
カスタムポストエフェクト 例 鉛筆画風
カスタムポストエフェクトの作り方 URPのカスタムポストエフェクトはまだ正式にはサポートされていないぽい 将来的にサポートされると思うが、いつかわからない が、RendererFeaturesに追加すれば実現は可能 作り方 VolumeComponentを継承したクラスを作成 ScriptableRenderFeature、ScriptableRenderPass継承クラス作成 CustomForwardRendererDataに作成したRenderFeature追加 Shader作成
VolumeComponent継承クラス作成 ポストエフェクトのパラメーター調整用インターフェース作成
CustomForwardRendererDataに作成したRenderFeature追加 ScriptableRenderFeature、ScriptableRenderPass継承クラスを作成し、SRPに登録
Shader作成 かけたいエフェクトのShaderを作成する ShaderGraphでもできる 複数パス非対応など制限あり ShaderLabで書けば、複数パスのものも使える
まとめ 探せば結構情報が見つかる 昔のポストエフェクト向けに作成されたサンプルとかも、置き換えればだいた い動く やっている人がそれなりにいる VolumeComponent、ScriptableRenderFeature/Pass系は自作の必要あり SRPに処理を入れるので、ポストエフェクトをかけないときの処理も考慮する 必要がありそう VolumeComponentのActive状態を調べる
ご清聴ありがとうございました