ユニバーサルレンダーパイプライン
公式サイト:
ユニバーサルレンダーパイプライン | Unity マニュアル [公式]
目次
- 1 概要
- 2 機能/互換性
- 3 導入
- 4 Universal Render Pipeline アセット
- 5 シェーダー
- 6 ライティング
- 7 ライトレイヤー (Light Layers)
- 8 カメラ (Camera)
- 9 ポストプロセス (Post Processing)
- 10 アンチエイリアス (Anti-aliasing)
- 11 レンズフレア (Lens Flare)
- 12 モーションブラー (Motion Blur)
- 13 マテリアルを URP に変換する
- 14 シェーダーを URP に対応させる
- 15 SRP Batcher
- 16 SpeedTree シェーダー
- 17 カメラ深度及び法線を取得する
- 18 GrabPass
- 19 パフォーマンス/最適化
- 20 Rendering Debugger
- 21 既存のプロジェクトを URP へ移行する
- 22 フォーラム
- 23 チュートリアル
- 24 ドキュメント
- 25 チュートリアル
- 26 Alto-tascal Unity Lib
- 27 Kawase Blur Renderer Extension
- 28 Sharder Replacer
- 29 UI Blur Renderer Extension
- 30 Motion Blur (Fuji0k0)
概要
参考:
Unity の Universal Render Pipeline のレンダリング周りについて勉強してみた | 凹みTips
軽量レンダーパイプラインからユニバーサルレンダーパイプラインへ | Unity Blog [公式]
スクリプタブルレンダーパイプラインについて、Unity でこれから起きること | Unity Japan
機能/互換性
参考:
Feature Comparison Table | Universal RP 13.1 Manual [Official]
導入
参考:
URP を導入する | Inside the Black box
Universal Render Pipeline (URP) とは?概念の説明/セットアップ | LIGHT11
Unity の Universal Render Pipeline のレンダリング周りについて勉強してみた | 凹みTips
実践、URP でシェーダー書いてみる SimpleLit に Rim ライティングを付加 | まさかみブログ
URP 対応のシェーダを書いて、軽やかで色鮮やかな世界を作る方法 | Alto-tascal
手を動かして学ぶ Unity Universal Render Pipeline | WonderPlanet Developers’ Blog
Universal Render Pipeline アセット
v7.x
- 一般 (General)
- レンダラーリスト (Renderer List)
- デプステクスチャ (Depth Texture/デフォルト:
無効
) - 不透明テクスチャ (Opaque Texture/デフォルト:
無効
)- ダウンサンプリング (Downsampling)
- なし (None)
- 2× バイリニア (2x Bilinear/デフォルト)
- 4× ボックス (4x Box)
- 4× バイリニア (4x Bilinear)
- ダウンサンプリング (Downsampling)
- テラインの穴 (デフォルト:
有効
)
- 品質 (Quality)
- HDR (デフォルト:
無効
) - アンチエイリアス (Anti Aliasing / MSAA)
無効
/2×
/4×
/8×
(デフォルト:無効
)
- レンダースケール (Render Scale/デフォルト:
1.0
)
- HDR (デフォルト:
- ライティング (Lighting)
- メインライト (Main Light)
- 描画
- 無効 (Disabled)
- ピクセル毎 (Per Pixel)
- 投影 (Cast Shadows/デフォルト:
有効
) - シャドウ解像度 (Shadow Resolution)
256
/512
/1024
/2048
/4096
(デフォルト:2048
)
- 描画
- 追加ライト (Additional Lights)
- 描画
- 無効 (Disabled)
- 頂点毎 (Per Vertex)
- ピクセル毎 (Per Pixel/デフォルト)
- オブジェクト当たりの上限 (Per Object Limit/範囲:
0
~8
/デフォルト:4
) - 投影 (Cast Shadows/デフォルト:
無効
) - シャドウ解像度 (Shadow Resolution)
256
/512
/1024
/2048
/4096
(デフォルト:512
)
- 描画
- メインライト (Main Light)
- シャドウ (Shadows)
- 距離 (Distance/デフォルト:
50
) - カスケード (Cascades)
- カスケードなし (No Cascades/デフォルト)
- 2つのカスケード (Two Cascades)
- 4つのカスケード (Four Cascades)
- デプスバイアス (Depth Bias/デフォルト:
1.0
) - 法線バイアス (Normal Bias/デフォルト:
1.0
) - ソフトシャドウ (Soft Shadows/デフォルト:
無効
)
- 距離 (Distance/デフォルト:
- ポストプロセス (Post-processing)
- フィーチャーセット (Feature Set)
- 統合 (Integrated/デフォルト)
- Post Processing v2 (PPV2)
- グレーディングモード (Grading Mode)
- 標準ダイナミックレンジ (Low Dynamic Range/デフォルト)
- ハイダイナミックレンジ (High Dynamic Range)
- LUT サイズ (LUT Size/デフォルト:
32
)
- フィーチャーセット (Feature Set)
- 上級者向け (Advanced)
- SRP バッチャー (SRP Batcher/デフォルト:
有効
) - 動的バッチ処理 (Dynamic Batching/デフォルト:
無効
) - 混合ライティング (デフォルト:
有効
) - デバッグレベル (Debug Level)
- 無効 (Disabled/デフォルト)
- プロファイリング (Profiling)
- シェーダーバリアントログレベル (Shader Variant Log Level)
- 無効 (Disabled/デフォルト)
- URP シェーダーのみ (Only Universal RP Shaders)
- 全てのシェーダー (All Shaders)
- SRP バッチャー (SRP Batcher/デフォルト:
参考:
Universal Render Pipeline Asset | Universal RP 13.1 Manual [Official]
Scriptable Render Pipeline Settings | Unity マニュアル [公式]
シェーダー
参考:
Unity の Universal Render Pipeline のレンダリング周りについて勉強してみた | 凹みTips
ライティング
参考:
ライトレイヤー (Light Layers)
参考:
Light Layers で特定のオブジェクトにだけ影響するライトを作る | LIGHT11
カメラ (Camera)
参考:
URP の Camera コンポーネントリファレンス | npaka
Cameras | Universal RP 10.2 Manual [Official]
Clearing, Rendering Order and Overdraw | Universal RP 10.2 Manual [Official]
ポストプロセス (Post Processing)
参考:
URP でポストプロセス (Post-Processing) を使う手順 | はなちるのマイノート
Universal Render Pipeline でポストエフェクトを適用する | LIGHT11
URP における Post Processing 項目 | Machio Kinniku’s diary
Post-processing in the Universal Render Pipeline | Universal RP 13.1 Manual [Official]
アンチエイリアス (Anti-aliasing)
参考:
Post-processing in the Universal Render Pipeline | Universal RP 7.1 [Official]
where is the anti-aliasing post processing effect on URP? – Unity Forum
レンズフレア (Lens Flare)
参考:
モーションブラー (Motion Blur)
参考:
Motion Blur | Universal RP 13.1 Manual [Official]
マテリアルを URP に変換する
マテリアルを変換する手順
メニューから「編集 > Render Pipeline > Universal Render Pipeline」以下にある項目を選択して実行する。
- Upgrade Project Materials to UniversalRP Materials
- Upgrade Selected Materials to UniversalRP Materials
Render Pipeline Converter
※ URP 12.0 以降
- メニューから「ウィンドウ > レンダリング > Render Pipeline Converter」を選択して、「Render Pipeline Converter」ウィンドウを開く。
- 「Built-in to URP」を選択し、「Material Upgrade」にチェックを入れて「Initialize Converters」ボタンを押して変換処理を初期化する。
- 「Convert Assets」ボタンを押してマテリアルの変換を実行する。
参考:
URP 非対応のアセット/マテリアルを使用する場合のシェーダー設定や変換関連 – Qiita
Shader Graph とかパイプラインを変更して、ピンクになったときの修正方法 – Qiita
URP 12.0 以降のビルトインから URP へのマテリアルの変換方法 | TATIKUNLOG.
URP 12.0 からビルトインシェーダーから URP シェーダーへの変換方法が変わっている | デニッキ!
Render Pipeline Converter | Universal RP 12.0 Manual [Official]
Converting Your Shaders | Universal RP 13.1 Manual [Official]
プロジェクトを URP に変換したら、Default-Material の変換に対応できない – teratail
シェーダーを URP に対応させる
インクルードファイル
UnityCG.cginc
の代わりにCore.hlsl
をインクルードする。
HLSLPROGRAM
CGPROGRAM
/ENDCG
の代わりにHLSLPROGRAM
/ENDHLSL
を使用する。(推奨)
参考:
SRP Batcher に対応した UnityShaderVariables | Nyahoon Games Pte. Ltd.
Upgrading your Shaders | Universal RP 10.2.x Manual [Official]
Converting a Custom Shader to LWRP? | Unity Forum
How to use 3rd Party Shader with LWRP / URP | Unity Answers
SRP Batcher
参考:
SRP Batcher まとめ – Dynamic Baching や GPU インスタンシングとの違い/シェーダの書き方まで | LIGHT11
SRP Batcher に対応した UnityShaderVariables | Nyahoon Games Pte. Ltd.
SRP Batcher:レンダリングをスピードアップ | Unity Blog [公式]
スクリプタブルレンダーパイプラインバッチャー | Unity マニュアル [公式]
How to make a Default Unlit Shader compatible? – Unity Forum
SpeedTree シェーダー
URP 版の制限
- GI は適用されない。
- マテリアルに対して影は投影されない。
参考:
SpeedTree Shaders | Universal RP 10.3 Manual [Official]
カメラ深度及び法線を取得する
参考:
URP を拡張して、Normal 描画パスを追加してみた – Qiita
GrabPass
参考:
Feature Request: Built-In GrabPass (per object scene color) for URP | Unity Forum [Official]
The scriptable render pipeline how to support GrabPass? – Unity Forum
No GrabPass for 2D URP – Unity Forum
Porting unity-frosted-glass effect to LWRP – Unity Forum
Fullscreen blur with URP – Unity Forum
パフォーマンス/最適化
参考:
Universal Render Pipeline 環境でのシェーダー最適化対策 – Qiita
Rendering Debugger
※ Universal RP 12.1 以降
参考:
レンダリングをデバッグできる Rendering Debugger を触ってみる – Qiita
Rendering Debugger | Universal RP 13.1 Manual [Official]
既存のプロジェクトを URP へ移行する
手順
- メニューから「ウィンドウ > Package Manager」を選択して、「Package Manger」ウィンドウを開く。
- パッケージスコープを「Unity Registry」に切り替えて、「Universal RP」を検索して「Install」を実行する。
- メニューから「編集 > プロジェクト設定」 (Edit > Project Settings) を選択して、「プロジェクト設定」ウィンドウを開く。
- 「グラフィックス」 (Graphics) タブに切り替えて、「スクリプタブルレンダーパイプライン設定」 (Scriptable Render Pipeline Settings) で
UniversalRP-HighQuality
を設定する。 - メニューから「編集 > Render Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials」を実行して、既存のマテリアルを変換する。
動画:
Upgrading Your Existing Project to Universal Render Pipeline
参考:
Unity の LWRP 環境で Nature 系のマテリアルが真っピンクな状態を解決する方法 – Qiita
Universal Render Pipeline (URP) 乗り換えハマりポイントまとめ | fuqunaga
Initial Setup (URP) | Tom Stephenson
Render Pipeline Converter | Universal RP 13.1 Manual [Official]
Converting Your Shaders | Universal RP 13.1 Manual [Official]
フォーラム
Universal Render Pipeline | Unity Forum [Official]
What is next for us at Unity with Scriptable Render Pipelines – Unity Forum
チュートリアル
Unity Scriptable Render Pipeline Tutotials | Catlike Coding
ドキュメント
Universal Render Pipeline | Unity Manual [Official]
Universal Render Pipeline Overview | Universal RP 13.1 [Official]
チュートリアル
HDRP vs URP – Which Unity Template Should You Choose?
Evolving Game Graphics with the Universal Render Pipeline (Unite Now 2020)
How the Universal Render Pipeline Unlocks Games for You
Alto-tascal Unity Lib
リポジトリ:
tatsuya-koyama/Alto-tascal-Unity-Lib: あると助かる、Unity で使えるライブラリ – GitHub
Kawase Blur Renderer Extension
リポジトリ:
sebastianhein/urp_kawase_blur: URP Render Feature Test Project – GitHub
参考:
An investigation of fast real-time GPU-based image blur algorithms | Intel Software
Sharder Replacer
リポジトリ:
SakaITa/SharderReplacer.cs – Assets 内の全 Material の Shader を一括で置換する Unity Editor 拡張 – GitHub Gist
UI Blur Renderer Extension
リポジトリ:
ArneBezuijen/urp_kawase_UI_blur: URP Render Feature Test Project – GitHub
参考:
Fullscreen blur with URP – Unity Forum
Motion Blur (Fuji0k0)
リポジトリ:
yugofujioka/fMotionBlur: Motion Blur for Universal RP (as Same as PPSv2) – GitHub