テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】既存のプロジェクトにLightweight RenderPipelineを導入する

今回はLight Weight Render Pipelineを既存のプロジェクトに導入してみます。

 

 

Lightweight render pipeline

Light Weight Render Pipeline(LWRP)は、Scriptable Render Pipelineで提供するテンプレートの一つです。
主にモバイルやモバイルVRといったパフォーマンスがリッチではない端末に焦点を当てているパイプラインで、多くの端末で動作しつつも見た目はそれ程貧弱にならないといったモノを目指しているみたいです。

f:id:tsubaki_t1:20180907184402j:plain

それなりに詳しい説明は、下のブログで確認できます。

blogs.unity3d.com

 

Light Weight Render Pipelineを使う

LWRPを使用してみます。

まずPackage Managerからパッケージを導入します。

  1. メニュー > Window > Package Managerを開く
  2. Allタブを選択
  3. Render Pieplines.Lightweightを選択
  4. Installを押す

f:id:tsubaki_t1:20180907184552j:plain

これでパッケージが導入されます。次にLWRPの適当です。

  1. Asset > Create > Rendering > Lightweight Pipeline Asset
    でアセットを作成
  2. Editor > Project Settings > Graphicsを開く
  3. Script Render Pipelineに先程作ったアセットを指定

f:id:tsubaki_t1:20180907185618j:plain

f:id:tsubaki_t1:20180907185646j:plain

画面がまっピングになります。
これはLWRPのライティングが今までのSurface Shaderに対応していないからです。
これを一つ一つアップデートするのは非常に骨なので、一括でアップデートしてしまいます。

  1. Editor > Render Piepeline > Update Project Materials To Lightweight Materials
  2. Processedを押す

これで一定の法則に従い、シェーダーがアップデートされます。
この法則については、Upgradable Shadersに書いてあります。

要するにStandard ShaderはStandard (Physically Based)、MobileやLegacy ShaderはStandard (Simple Lighting)になります。
ではそれ以外…例えばParticleのShader等はといえば、ライティングシステムを使用してないならそのまま使えます。Unlit等のシェーダーも同様です。

f:id:tsubaki_t1:20180907184716j:plain

 

 これでシェーダーがUpgradable Shadersの法則に従い差し替えられて、概ね見れるようになります。いくつかのシェーダー(Unityの光表現を使用しつつ差し替え対象から外れてるシェーダー・・・例えばReflectiveやGlass Shalder等)はShaderが動作せずピンク色になるので、手動で別のシェーダーを割り当ててやる必要があります。
光があり特殊な動きをするシェーダーに関しては、ShaderGraphに丸投げという感じみたいです。

f:id:tsubaki_t1:20180907213947p:plain

それができたらクォリティの調整です。
LWRPを適応するとQuality Settingsで変更していたライティング関連の項目が殆どLightweight Asset(先程作成したファイル)に移行しますので、プロジェクトにあった適当な値を設定する必要があります。

今までの設定に加えてさり気なくシャドウの解像度が設定できるのは嬉しいですね。

【Unity】リアルタイムな影がカクカクになる問題の対処 - テラシュールブログ

f:id:tsubaki_t1:20180907214958j:plain

最後にライトの設定も行います。というのも、LWRPは現在subtractive(減法)以外のライトマップに対応していません。なので、ライトは再度焼き直したほうが良いです。リアルタイムGIも無くなっています。

一応、Unity 19.1で他のいくつかのライトマップ(Shadow MaskとBaked Indirect)が実装されるみたいなので多少は変わるかもしれません。

Pipeline Feature Comparison
f:id:tsubaki_t1:20180907220221j:plain