NinaLabo

個人ゲーム開発者の技術メモ

【Unity】LWRPプロジェクトの作成とサンプルシーン

Unity2018.1 から LWRP (Lightweight Render Pipeline: 軽量レンダーパイプライン) が導入されました。LWRPはSRP(Scriptable Render Pipeline)の1つで、HDRP (High Definition Render Pipeline: 高画質レンダーパイプライン)に比べ軽量でモバイル向きだそうです。

SRPとはUnity がフレームをどのように描画するかをデベロッパーが C# で制御できるようにするものです。

blogs.unity3d.com

まずは新規にLWRP用のプロジェクトを作成します。 なお、既存のプロジェクトをLWRPに適用させるのはテラシュールさんの記事がわかりやすかったです。

tsubakit1.hateblo.jp

実行環境

Unity: 2018.3.4f1

LWRP: 4.1.0-preview 

LWRPプロジェクトの作成

プロジェクトの新規作成で、Template に Lightweight RP (Preview) が増えているので選択します。ちなみに、LWRPはまだPreview版のようで、2019.1から本格的に使えるようになるようです。

f:id:ninagreen:20190207042036p:plain

 

プロジェクトを作成するとこんなサンプルシーンが開きます。

f:id:ninagreen:20190207043102p:plain

サンプルプロジェクトにはLWRP設定が3種類用意されています。Edit > Project Settings > Graphics の一番上の設定を切り替えれば変更できます。

 LWRP-LowQuality  LWRP-MediumQuality  LWRP-HighQuality

f:id:ninagreen:20190209142453p:plain

f:id:ninagreen:20190209142532p:plain

f:id:ninagreen:20190209142602p:plain

設定の違いは以下のようになっています。

   LWRP-LowQuality   LWRP-MediumQuality   LWRP-HighQuality 
 HDR   OFF  ON  ON
 MSAA(Anti Aliasing)   Disabled  2x  4x

 Main Light

 - Shadow Resolution 

 512  1024  1024

 Additional Lights 

 Disabled

 Per Pixel

 Per Pixel

 Additional Lights 

 - Cast Shadows

 -

 OFF

 ON (1024)

 Shadows

 - Cascades

 No Cascades  Two Cascades  Four Cascades

 Shadows

 - Soft Shadows 

 OFF  ON  ON

 左の絵はHDRがオフなのでスポットライトとブルームが反映されていないのと、真ん中の絵はAdditional LightsのCast Shadowsがオフなので右側にスポットライトの影が出てないのが大きな違いでしょうか。

 なお、LWRPと通常のUnityビルドインパイプラインの違いは下記に記載があります。

blogs.unity3d.com

 

注意点は、CEDEC2018の発表資料にある通り、

① CameraのCallbackが呼ばれない

Camera.OnRenderImageなどのCamera系のコールバックが呼ばれなくなります。 

Surface Shaderが使えない

vertex shader / fragment shader もしくは、2018.1からの新機能ShaderGraphでのShader記述に置き換える必要があります。 

www.slideshare.net

それ以外にも、

③ 現状のLWRPでは複数のカメラに対応していない。Unity2019.1で対応するかもしれないとのこと。

https://forum.unity.com/threads/glitching-with-multiple-cameras-lwrp.592477/

  • Remove multi-camera support. LWRP and HDRP will not support multi-camera layered rendering.

つまり、UI用にMainCameraとは別のカメラを追加する、みたいなことは現状ではうまく動作しないと思われます。

④ LWRPは、通常のビルドインのUnityレンダリングやHDRPとは互換性がない。既存のプロジェクトにLWRPを適用するための一括変換コマンドもあるが、すべて正確に変換できるとは限らずアセットによっては手動で修正しなければいけないかもしれません。

Editor > Render Piepeline > Update Project Materials To Lightweight Materials

 

などがありそうです。そもそもLWRPはまだPreview版で仕様が変更される可能もあります。本格的な使用はUnity2019での正式版まで待った方がいいかもしれません。