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
15
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
URP の 2D Renderer と たわむれる
https://unity-fully-understood.connpass.com/event/358068/
ruccho
July 11, 2025
More Decks by ruccho
See All by ruccho
Roslyn でフロー解析してみる
ruccho
0
620
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
1.2k
Colonies
ruccho
0
680
タイルマップ拡張のススメ / Recommendation of Unity Tilemap Gotanda.unity #14
ruccho
0
3.6k
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
310
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
160
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
610
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
620
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Designing Powerful Visuals for Engaging Learning
tmiket
1
410
Side Projects
sachag
455
43k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
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に詳しくなれます