今回はLight Weight Render Pipelineを既存のプロジェクトに導入してみます。
Lightweight render pipeline
Light Weight Render Pipeline(LWRP)は、Scriptable Render Pipelineで提供するテンプレートの一つです。
主にモバイルやモバイルVRといったパフォーマンスがリッチではない端末に焦点を当てているパイプラインで、多くの端末で動作しつつも見た目はそれ程貧弱にならないといったモノを目指しているみたいです。
それなりに詳しい説明は、下のブログで確認できます。
Light Weight Render Pipelineを使う
LWRPを使用してみます。
まずPackage Managerからパッケージを導入します。
- メニュー > Window > Package Managerを開く
- Allタブを選択
- Render Pieplines.Lightweightを選択
- Installを押す
これでパッケージが導入されます。次にLWRPの適当です。
- Asset > Create > Rendering > Lightweight Pipeline Asset
でアセットを作成 - Editor > Project Settings > Graphicsを開く
- Script Render Pipelineに先程作ったアセットを指定
画面がまっピングになります。
これはLWRPのライティングが今までのSurface Shaderに対応していないからです。
これを一つ一つアップデートするのは非常に骨なので、一括でアップデートしてしまいます。
- Editor > Render Piepeline > Update Project Materials To Lightweight Materials
- Processedを押す
これで一定の法則に従い、シェーダーがアップデートされます。
この法則については、Upgradable Shadersに書いてあります。
要するにStandard ShaderはStandard (Physically Based)、MobileやLegacy ShaderはStandard (Simple Lighting)になります。
ではそれ以外…例えばParticleのShader等はといえば、ライティングシステムを使用してないならそのまま使えます。Unlit等のシェーダーも同様です。
これでシェーダーがUpgradable Shadersの法則に従い差し替えられて、概ね見れるようになります。いくつかのシェーダー(Unityの光表現を使用しつつ差し替え対象から外れてるシェーダー・・・例えばReflectiveやGlass Shalder等)はShaderが動作せずピンク色になるので、手動で別のシェーダーを割り当ててやる必要があります。
光があり特殊な動きをするシェーダーに関しては、ShaderGraphに丸投げという感じみたいです。
それができたらクォリティの調整です。
LWRPを適応するとQuality Settingsで変更していたライティング関連の項目が殆どLightweight Asset(先程作成したファイル)に移行しますので、プロジェクトにあった適当な値を設定する必要があります。
今までの設定に加えてさり気なくシャドウの解像度が設定できるのは嬉しいですね。
【Unity】リアルタイムな影がカクカクになる問題の対処 - テラシュールブログ
最後にライトの設定も行います。というのも、LWRPは現在subtractive(減法)以外のライトマップに対応していません。なので、ライトは再度焼き直したほうが良いです。リアルタイムGIも無くなっています。
一応、Unity 19.1で他のいくつかのライトマップ(Shadow MaskとBaked Indirect)が実装されるみたいなので多少は変わるかもしれません。