【Unity】Light Weight Render Pipeline(LWRP)をサクッと理解する

UnityのLight Weight Render Pipelineを簡単に使って概要をまとめてみます。

Unity2018.3.12

Light Weight Render Pipeline?

UnityではScriptable Render Pipeline(SRP)という機能を使うことでレンダリングパイプラインをカスタムできます。
SRPを使って完全に独自のパイプラインを作ることもできますが、敷居が高いのでUnityがプリセットを用意してくれています。
Light Weight Render Pipeline(LWRP)はこのプリセットの一つで、モバイルプラットフォームを想定した軽量なレンダリングパイプラインになっています。

レンダリングパスはシングルパスのフォワードレンダリングで、従来のStandard Shaderなどは使えません。
代わりに、軽量なPBRを行うLWRP用のStandard Shaderなどが用意されています。
ちなみにもう一つのプリセットであるHDRPとの互換性もないので、どちらを使うかはあらかじめ決めておく必要があります。

また、今までLWRPはPreview版でしたが、Unity2019.1からプレビューが外れました。

blogs.unity3d.com

LWRPのプロジェクトを作る(プロジェクトを新規作成する場合)

それでは早速LWRPの設定をしてみます。
LWRPのプロジェクトを新規作成するか既存のプロジェクトをLWRPに対応させるかで手順が異なるので両方とも説明します。

まずプロジェクトを新規で作成する場合の手順です。
この場合、プロジェクト作成ウィンドウのTemplateからLightweight RPを選択します。

f:id:halya_11:20190505231138p:plain

新規作成の場合はこれだけです。

LWRPのプロジェクトを作る(既存のプロジェクトをLWRPに対応させる場合)

次に既存プロジェクトをLWRPに対応させる場合の手順です。
まずPackage ManagerからLWRPをインストールします。
今回はUnity2018.3を使っているためまだPreview版なので、Preview版のPackageも表示するようにします。

f:id:halya_11:20190505231759p:plain

Lightweight Render Pipelineを検索してインストールします。
※Unity2019の場合はLightweight RPのような名前に代わっているかもしれません

f:id:halya_11:20190505231833p:plain

インストールが終わったら、下記の通り初期設定を行います。

  1. Create > Rendering > Lightweight Render Pipeline Assetでアセットを作る
  2. Edit > Project Settings > Graphics > Render Pipeline Settingsにアセットを設定

下記のようにSRPのアセットが設定できていればOKです。

f:id:halya_11:20190505232608p:plain

SRPアセットで設定を変更できる

前節で作ったSRPのアセットのインスペクタを見ると、レンダリングパイプラインの設定ができることがわかります。

f:id:halya_11:20190506013524p:plain

項目の説明は省きますが、従来のパイプラインではQuality Settingsで設定していた項目だったり、
従来のパイプラインではできなかったレンダーターゲットの解像度設定などができます。

設定項目の細かい説明はマニュアルに書かれています。

docs.unity3d.com

従来のパイプラインとの違い

従来のパイプラインとLWRPの違いを重要そうなところだけざっくりまとめると以下のようになります。

項目名 従来のパイプライン LWRP
レンダリングパス マルチパスのForward Rendering
マルチパスのDeferred Rendering
シングルパスのForward Rendering
カメラ 複数のカメラをスタックできる カメラのスタックはできない
レンダーターゲットの解像度をスケーリングできる
リアルタイムシャドウ 複数のライトから落とせる 一つのライトからのみ落とせる
Post-Processing Stack 全部使える TAA、Motion BlurSSRが使えない
リアルタイムGI 対応 非対応
リフレクションプローブ ブレンドに対応 ブレンド非対応
モーションベクトル 対応 非対応

詳細は以下の公式ブログに書かれています。

blogs.unity3d.com

もっと細かい機能比較はマニュアルに書かれています。

docs.unity3d.com

参考

blogs.unity3d.com

docs.unity3d.com