Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
URP の 2D Renderer と たわむれる
Search
ruccho
July 11, 2025
0
10
URP の 2D Renderer と たわむれる
https://unity-fully-understood.connpass.com/event/358068/
ruccho
July 11, 2025
Tweet
Share
More Decks by ruccho
See All by ruccho
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
1.1k
Colonies
ruccho
0
660
タイルマップ拡張のススメ / Recommendation of Unity Tilemap Gotanda.unity #14
ruccho
0
3.6k
Featured
See All Featured
Believing is Seeing
oripsolob
1
59
The World Runs on Bad Software
bkeepers
PRO
72
12k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Navigating Weather and Climate Data
rabernat
0
110
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
740
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Transcript
URP の 2D Renderer と たわむれる るっちょ @ruccho_vector
およそ1年前…… • 『5年モノの個人開発2Dゲーム、そろそろURPに移行したいな~』 ◦ VFX Graphを使いたい ◦ BiRP廃止の影がちらつき始めた
やってみた URP 17.0.3 BiRP
URP移行でやったことを 紹介していきます
① 2Dライト
2Dライト • BiRPの頃のライト手法 ◦ スプライトにSurface Shaderを適用し、ノーマルマップを描いて3Dライトを当てていた ◦ 3Dのライティングを2Dに応用した形 • URPでは
◦ 2Dライトが標準サポートされている ◦ 専用の 2D Rendererを使う必要がある
2D Rendererのパイプライン • 先に画面全体のNormalと陰影を計算してから合成する手法 ◦ Deferred Rendering的ともいえる ◦ BiRPではForward Renderingのライト数制限がきつかったが、それも緩和された
② GrabPassがなくなった
GrabPassとは • 任意のシェーダー内で描画直前の画面をテクスチャとして 取得するBiRPの機能 • 画面をぼかしたり、歪ませるのに便利 • URPでは非対応だが、2D Renderer限定で Camera
Sorting Layer Texture という代替機能がある
Camera Sorting Layer Texture • URPで特定のSorting Layerの直後の画面をシェーダーから参照できる機能 • GrabPassのようにRenderer単位のキャプチャはできない レイヤーA
レイヤーB レイヤーC レイヤーD キャプチャ 参照 描画順
URP改造でGrabPassを再現する? • 残念ながら、SRPでは任意のRendererの直前や直後でバッチを切れない • 結論 SRPでGrabPassは(たぶん)無理 • 詳細が気になる人はこれを読んでください ◦ 各バッチに含めるRendererはRenderQueue,
LayerMask, SortingLayerなどで フィルタできるが、「特定のRendererの前後」ではフィルタする方法がない ◦ 作成したバッチにRendererListというデータが含まれているが、内容はC++側にあって C#からはアクセスできない
対応策 • URPを改造してこうする レイヤーA レイヤーB レイヤーC レイヤーD キャプチャ キャプチャ キャプチャ
キャプチャ 描画順
対応策 • GrabPassよりは単位が荒いが、概ね事足りた • Sorting Layerごとにバッチが切れるので性能は多少下がる • Sorting Layer数を増やしすぎないように レイヤーA
レイヤーB レイヤーC レイヤーD キャプチャ キャプチャ キャプチャ キャプチャ 描画順
③ Bloomの見た目が変わった
URPのBloom • BiRP (PostProcessing Stack v2) から実装が刷新されてルックも 変わり、パラメータをいじっても元のルックが再現できず BiRP (PPSv2)
URP標準
対応 • 旧実装をカスタムポストプロセッシングとしてURPに移植した BiRP (PPSv2) 移植後
④ RenderGraph対応
RenderGraph • URP 17 (Unity 6) で導入された新機能 ◦ ざっくりいうと、レンダリングパスの依存関係をもとに高度な最適化を行う機能 •
カスタムパス(Renderer Feature)の作り方が大きく変わっている • まだあまり情報がなく、手探りで対応 • (2D特有の事情は特になし)
まとめ
まとめ • GrabPassなど一部機能に不足はあるが、概ね問題なく移行できた • ライティングはむしろ進化した ◦ ライト数制限が緩和されてうれしい • URP改造するとURPに詳しくなれます