デニッキ

XRエンジニア🔰の備忘録・日記です.

Built-in Render Pipeline と Lightweight Render Pipeline と Universal Render Pipeline と

もう記憶が定かじゃないのですが,Unity 5,Unity 2017までは,
プロジェクトを作成する際,テンプレートは2Dと3Dしかなかったと思います.

Unity 2018.1からプレビューとして,High-Definition RPとかLight Weight RPとか
VR Lightweight RPとか追加されております.これは前からスルーしていたのですが….

f:id:xrdnk:20200425222410p:plain

Built-in Rendering Pipeline (BRP)

今までUnityで使われているレンダリングパイプライン(RP)のことです.
普通にテンプレートで2Dと3Dを選択すると,このRPが適用されます.
実はこのBuilt-in Render Pipeline,Unity2020でLegacyになります

Rendering Pipeline とは

3次元コンピュータグラフィックスの計算処理方法の1つであり、3次元モデルのデータから2次元画像のイメージを作り出す多段階の過程全体を指し、それらの計算をパイプライン処理によって高速化する手法を示す。

グラフィックスパイプライン - Wikipedia

Unity のレンダリングパイプライン - Unity マニュアル

Light Weight Rendering Pipeline (LWRP) と Universal Render Pipeline (URP)

軽量レンダーパイプライン ― リアルタイムパフォーマンスの最適化 - Unity Technologies Blog

Unity 2018 から Light Weight Rendering Pipeline が登場しております.
Built-in Rendering Pipelineに比べるとレンダリング速度が高速化しております.

Unity 2019.1.6 から LWRP はレビュー版からリリース版に昇格し,
Unity 2019.3 から LWRPは Universal Rendering Pipeline (URP)に名称を変えました.

軽量レンダーパイプラインからユニバーサルレンダーパイプラインへ - Unity Technologies Blog

Unity 2020 から URPが標準になります.

f:id:xrdnk:20200425223339p:plain
Unity 2019.2

f:id:xrdnk:20200425223352p:plain
Unity 2019.3

LWRP・URPのメリット

LWRP は、広範に使用可能な、幅広く利益をもたらすパイプラインとして開発されたものです。このパイプラインが発展し、美しさと高パフォーマンスを実現しながらも幅広いプラットフォームにスケーリング可能な強力なソリューションとなりました。2D・3D・VR・AR のどの形式のプロジェクトでも、一度の開発で全プラットフォームにデプロイしたいなら、このレンダリング技術が最適です。Unity 2019.3 で、LWRP はユニバーサルレンダーパイプライン(UniversalRP)へと進化を遂げました。

何よりもパフォーマンスがアップしているのが利点です.

上の記事に書かれておりますが,『POLYGON-Farm』アセットパックをBRPからURPに変換し,
ハードウェア iPhone 6Sでビジュアルとパフォーマンスを比較した結果,以下のような結果になってます.
(下記の画像は上の記事から引用しております.)

f:id:xrdnk:20200425230421p:plain
BRP(FPS44,CPUが20.6msGPU22.6ms

f:id:xrdnk:20200425230305j:plain
URP(FPS60,CPUが12.9msGPU16.6ms

f:id:xrdnk:20200425224612p:plain
BRPとURPの比較表

1.5~2倍近い高速化が実現できるようになります.
ビジュアル品質は落とさずに,より高いフレームレートが維持できるようになってます.

LWRP・URPのデメリット

  • コンパイル時間がとても長い

  • 今のアセットの殆どがBRP対応のため,再コンパイルが必要.変換できないものもある.

LWRP未対応だとピンクになってしまうんですよね.

f:id:xrdnk:20200425225437j:plain (以下の記事から引用しております.)
tsubakit1.hateblo.jp

Edit > Render Pipeline > Upgrade Project Materials To Lightweight RP Materialsで再コンパイルすると直ります.
直らないものもあります….これからの対応になる感じかなと.

【Unity】既存のプロジェクトにLightweight RenderPipelineを導入する - テラシュールブログ

High-Definition Rendering Pipeline (HDRP)

最高品質のグラフィックスを実現できるようになります.
UE4レベルのグラフィックスを求めるならばこちらを設定する感じになります.

LWRP・URP対応のポストプロセスアセット

www.asset-sale.net

assetstore.unity.com

URPに関する書籍とか

技術書典8で出ていたこちらの本を買いました.

Unity実践UniversalRenderPipeline - smartphone-games - BOOTH

某シェーダープログラミングの教科書の続編が出るっぽい.

終わりに

個人開発するVRアプリはLWRP・URPでやりつつ,LWRP・URPについてもう少しこれから勉強してみます.
いよいよシェーダーについても目をそらさずに本腰入れてやらないといけないなあ….