Search Unity

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

, 9月 20, 2019

Unity 2019.3 で、「軽量レンダーパイプライン」(LWRP)の名称が「ユニバーサルレンダーパイプライン」(UniversalRP)に変更されました。ユニバーサルレンダーパイプラインは、美しいグラフィックスとパフォーマンスを実現しながらも幅広い種類のプラットフォームにスケーリング可能な強力なソリューションです。このパイプラインは最新のアーティストツールに対応しており、2D・3D・バーチャルリアリティー(VR)・拡張現実(AR)のプロジェクトに適しています。

軽量レンダーパイプライン(LWRP)は、あらゆるモバイルデバイスで高画質グラフィックスを実現する高速でスケーラブルなパイプラインとして開発されました。昨年 1 年間で、このスクリプタブルレンダーパイプラインがプロダクト開発に使用可能となり、Unity では、その機能・パフォーマンス・プラットフォームサポートを拡張する取り組みを引き続き進めて参りました。

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

対応プラットフォーム

UniversalRP の対応プラットフォームは、今後もさらに追加される予定です。

UniversalRP を使用する利点

  • 現在ではプロジェクト版への使用が可能
  • 一回の開発で、Unity のすべての対応プラットフォームにデプロイが可能
  • すべての形式のプロジェクト(2D、3D、XR)に適している
  • アーティスト向けに設計された各種ツール(Visual Effect Graph、シェーダーグラフ、レンダーパス)を搭載
  • 今後も進化し続け、Unity プロジェクトのデフォルトのレンダリングオプションとなる見込み
  • 2019.4 LTS でサポート

LWRP からのアップグレードに際して知っておくべきこと

ユニバーサルレンダーパイプライン(UniversalRP)は、LWRP が名称を変えて継続されるものです。クリエイターの皆様にとって、LWRP から UniversalRP への移行は比較的シームレスです。現在 LWRP を使用しているプロジェクトは、ごくわずかな設定作業のみで UniversalRP へアップグレード可能です。LWRP で記述されたカスタムのレンダリングエフェクトやシェーダーは、自動的に UniversalRP にアップグレードされます。カスタムシェーダー内で Shader.Find または UsePass をご使用の場合に限り、シェーダーパスの手動でのアップグレードが必要になります。

UniversalRP へアップグレードされる場合は、ポストプロセッシングエフェクトのアップグレードも必要になります。ポストプロセッシングがパイプライン内に直接統合されたので、別途パッケージを取得する必要はなくなりました。ユーザー体験が向上した上に、Post-processing Stack v2(PPv2)よりも高性能になりました。ただし、現在ポストプロセッシングはカスタムエフェクトに対応していません(今後追加される予定です)。

UniversalRP のポストプロセッシング機能には、アンチエイリアシング、被写界深度、モーションブラー、Panini プロジェクション、ブルーム、レンズの歪み、色収差、カラーグレーディング、トーンマッピング、ビネット、フィルムグレイン、8 ビットディザリングが含まれます。

UniversalRP のポストプロセッシングエフェクトのいくつかの例

LWRP から UniversalRP へのアップグレードに関する詳細なガイドは今後公開される予定ですので、もう少々お待ちください。

ビルトインレンダリングパイプラインからのアップグレードが推奨される理由

UniversalRP は拡張可能

Unity のビルトインレンダリングパイプラインでは、フォワードレンダリングパスとディファードレンダリングパスのどちらかが選択可能でした。拡張性は、パイプライン内の特定のイベント内にコマンドバッファを注入することによって実現されていました。しかし、カスタムのレンダリングストラテジーを追加することができず、既存のものの拡張は、数か所の注入ポイントのみでしか行えませんでした。

UniversalRP は、レンダラーという概念の導入によって拡張性を向上させています。レンダラーは、一式の機能とライティングストラテジーを実装するものです。

Unity 2019.3 の UniversalRP には、すべてのライトのシェーディングをシングルパスで行うフォワードレンダラーと、複数のタイプのリアルタイムライトをサポートする 2D レンダラーが搭載されています。最適化済みのディファードレンダラーは近い将来に公開される予定となっています。

プロジェクトをセットアップする際に、パイプラインアセット内のレンダラーのリストが宣言可能となり、各カメラにそのリスト内の特定のレンダラーを使用させることができるようになりました。

(右)パイプラインアセットにレンダラーのリストが含まれている(左)カメラに使用させるレンダラーを選択する

開発者は独自のレンダラーを作成して(例えばタイル/クラスターベースのレンダリングなどの)レンダリングストラテジーを追加することで、このパイプラインを拡張することができます。カスタムレンダリングパイプラインを一から構築する代わりに UniversalRP 用のカスタムレンダラーを実装するようにすれば、レンダリングの基本的要素の多くは UniversalRP に任せることができます。レンダラーが一旦実装されれば、すぐに使用を開始できます。

また、追加的なレンダラー機能でレンダラーを拡張することも可能です。この機能はレンダーパスをレンダラー内に注入するためのリソースとロジックを含んだスクリプタブルオブジェクトです。各機能が 1 つまたは複数のレンダーパスをレンダラー内の特定のイベントに注入できます。UniversalRP には、多くのカスタマイズを行うことができる汎用の RenderObjects 機能が含まれています。これをレンダラー内の「Renderer Features」リストに追加することでレンダラーに追加することができます。また、カスタム機能の作成も可能です。UniversalRP は、カスタム機能を作成するためのスクリプトテンプレート(Asset -> Create -> Rendering -> Universal Render Pipeline -> Renderer Feature から利用可能)を提供しています。UniversalRP の拡張に関してさらに詳しく学びたい方は、こちらのプレゼンテーション動画をご視聴ください。またカスタムレンダリングの各種サンプルもご覧いただけます。

(左)FPSSetup は追加的なレンダラー機能を持つフォワードレンダラー (右)「+」アイコンをクリックするとレンダラーに機能を追加できる

UniversalRP を拡張したプロダクトの実例

『Crest Ocean』(アセットストアでご入手いただけますの開発チームは、UniversalRP を拡張してリアリスティックな海を作り出しました。このようなエフェクトは従来は実現が困難でしたが、明示的なフックによって、レンダラーをゼロから記述し直すことなくレンダリングを大幅に拡張することが可能になりました。

UniversalRP がパフォーマンスにもたらす利点

UniversalRP は、従来のビルトインレンダリングパイプラインよりも軽量なレンダリングソリューションであるだけでなく、結果のクオリティも向上します。ビルトインレンダリングパイプラインから UniversalRP へプロジェクトをアップグレードした場合、アップグレード前と同等あるいはそれ以上のパフォーマンスが見込まれます。

私達は、 『POLYGON – Farm』アセットパックをビルトインレンダリングパイプラインから UniversalRP へ変換し、iPhone 6S でそのビジュアルとパフォーマンスを比較しました。両方のプロジェクトを調整して品質設定とレンダリング設定を一致させました。UniversalRP の使用によって、ビジュアル品質を落とすことなく、より高いフレームレートを実現することができました。

ユニバーサルレンダーパイプライン(UniversalRP)

ユニバーサルレンダーパイプライン(UniversalRP)

ビルトインレンダリングパイプライン

*ドローコール回数の相違は、UniversalRP がひとつひとつの追加ライトに対して追加的なドローコールをレンダーしないことに起因します。**バッチ数の相違は、UniversalRP がシェーダーごとにバッチするのに対し、ビルトインレンダリングパイプラインがマテリアルごとにバッチすることに起因します。

プロジェクトを変換してもパフォーマンスが向上しない場合は、まず、2 つのパイプラインの品質設定が一致しているかどうかを確認してください。UniversalRP は品質設定の全項目をパイプラインアセット内で制御します。このパイプラインでは、品質設定の特定の組み合わせごとにパイプラインアセットを設定することが可能になりました。つまり、すべての品質設定項目をパイプラインアセット内でまとめて管理しながらも、異なるプラットフォーム間で品質をスケーリングすることができます。ビルトインレンダラーの場合はこれとは異なり、品質設定項目が Quality Settings 内と Graphics の Tier 内に散在しています。プロジェクトを UniversalRP に変換する際、元のプロジェクトの設定は自動的にアップグレードされません。品質設定は手動でアップグレードしていただく必要があります。

UniversalRP にプロジェクトを変換した際、品質設定が一致しているにも関わらずパフォーマンスが低下した場合は、バグの報告をお送りくださいますようお願いいたします。

UniversalRP の未来

UniversalRP は今後も進化し続けます。皆様にはぜひ Visual Effect Graph やシェーダーグラフ、カスタムレンダーパス、そして最新のポストプロセッシングなどの機能をご活用いただきたいと願っております。UniversalRP を使用すれば、従来と同等あるいはそれ以上の品質とパフォーマンスを実現しながら、一回の開発で幅広いプラットフォームにデプロイすることが可能となります。

2020 年にはビルトインレンダラーとの機能のパリティを実現すべく、取り組みが進んでいます。これにはディファードレンダラーやカメラスタッキングが含まれます。従来と同じ各種機能を引き続きプロジェクトにご使用いただけますが、その方法が一部変更されます。

このスクリプタブルレンダーパイプラインの開発中に、レンダリングシステムが再設計されました。一部の機能は(より良い代替機能が開発されたために)廃止されます。UniversalRP で変更された機能には、レンダリングコールバック、Grabpass、カメラスタッキングなどが含まれます。

私達は、機能の進化だけでなくパフォーマンスの向上にも継続的に取り組んでいます。通常は、同じ品質設定で UniversalRP を使用すると、従来のレンダリングソリューションと同等あるいはそれ以上のパフォーマンスが発揮されます。そうならない場合には、これをリグレッションとして扱い、バグとして処理しています。

2021 年にはすべての対応プラットフォームでのパフォーマンスが確実に維持されるようにすることを目標とし、かつ、高性能モバイルおよびコンソールプラットフォーム向けの機能の追加によって UniversalRP を進化させるべく取り組みを進めています。

ユニバーサルレンダーパイプラインと HD レンダーパイプライン

ユニバーサルレンダーパイプライン(UniversalRP)は HD レンダーパイプライン(HDRP)の代替となるものではなく、HDRP の機能を含むものでもありません。

ユニバーサルレンダーパイプラインは、将来的には Unity のデフォルトのパイプラインとなる計画です。一回の開発であらゆるプラットフォームにデプロイ可能なこのパイプラインは、より高い柔軟性と拡張性を備え、ビルトインレンダリングパイプライン以上のパフォーマンスを実現し、グラフィック品質をも向上させます。

HDRP は最高品質のグラフィックスを実現します。HDRP は、高性能ハードウェア向けのグラフィックスに重点を置いた、高パフォーマンスで強力な、忠実度の高いビジュアルを目標とするプロジェクトに最適です。

使用するレンダリングパイプラインは、プロジェクトの機能やプラットフォーム要件に応じてご選択ください。

UniversalRP を使ってみよう

今すぐ UniversalRP へのアップグレードを行って、製品版への使用が可能になった機能の数々をお試しになり、パフォーマンス向上のメリットをお受け取りください!プロジェクトをアップグレードするには、アップグレードツールをご使用になるか、Unity Hub から Universal テンプレートを使用して新規プロジェクトを開始してください。

ユニバーサルレンダーパイプラインに関するフォーラムに、ぜひフィードバックをお寄せください!

48 コメント

コメントの配信登録

leave_a_reply to Nikolaj Stausbøl返信をキャンセルする。

これらの HTML タグや属性を使用できます: <a href=""> <b> <code> <pre>

  1. Bruno do Nascimento

    11月 17, 2019 11:44 pm 返信

    Any ETA on projectors being available at the LWRP/URP? I know they are not very performant, but they are the best way of making shadows for non visible flying objects (like clouds) on top down games.

  2. “You should upgrade from the Legacy Rendering pipeline because Universal Rendering Pipeline is extensible.”

    “Universal Rendering Pipeline does not support custom postprocessing, deferred rendering or camera stacking.”

    I feel like Unity doesn’t know what “Upgrade” or “Extensible” means.

  3. Small typo in Benefits of using the Universal Render Pipeline.
    “2019.4 LTS” should be “2018.4 LTS”.

    1. Charles Beauchemin

      10月 17, 2019 7:48 pm 返信

      In fact, since the Universal Render Pipeline was introduced in 2019.3, we are planning to support it in the 2019 LTS, which will be labeled 2019.4.x.
      Please take a look at this post to see how LTS versions work: https://blogs.unity3d.com/2018/04/09/new-plans-for-unity-releases-introducing-the-tech-and-long-term-support-lts-streams/

      1. Oops, apologies.
        Thanks for the quick reply, and excellent work!
        Seeing comments on this site, there is a significant amount of underappreciation from people who don’t seem to understand the improvements coming and the significance of DOTS.

  4. It sounds like LWRP just renamed to URP , but I can see both package of LWRP and URP through Unity 2020.1.0a7 .
    Will the LWRP package disappear in the future ?

    1. Charles Beauchemin

      10月 17, 2019 7:50 pm 返信

      Yes, the LWRP is still visible for project migration reasons. It might disappear in some later version.

  5. Robert Farthing

    10月 4, 2019 12:53 pm 返信

    It would be reassuring to see the demos such as the Boat Attack demo working in VR as those VR platforms are listed as ‘supported’ under URP but generally URP is not production ready for platforms such as the Oculus Go/Quest. Also, postprocessing is completely broken in VR

  6. Vadim Pletnyakov

    10月 4, 2019 1:21 am 返信

    I don’t think it works that way. You can’t simply rename some low-quality graphics technology and expect everyone to believe it looks good now.

  7. we had some real issues with using lwrp for vegetation.

  8. Alejandro Martinez

    9月 29, 2019 6:47 pm 返信

    The render objects queue has a pretty much clear usage (such as a better performing ‘camera stacking’ actually) and a very welcomed feature!
    However, when should we use full screen quads and blits with Scriptable Render Passes or with the Post Processing Stack? There seems to be a tiny bit of overlap going on, although on the surface seems like more flexibility is available via the scriptable render passes (for example, to create a downsized depth texture for offscreen particles or to keep a blurred texture that never makes it to the main buffer for later UI pass use). As if this is closer to the use case and flexibility we had with “OnRenderImage” MonoBehaviours.

  9. What about volumetric fog in URP?

  10. Tristan Bellman-Greenwood

    9月 24, 2019 7:17 pm 返信

    Camera stacking is the final missing feature that is stopping me from switching to URP. Good to hear that it will be coming soon!

    1. +1 for camera stacking!

    2. Same here… Will switch to URP only until there’s easy to use camera stacking…

  11. What is going on with URP and ARFoundation?

  12. In addition, all tubes that do not have Unity light can be used with the tube. This means you can use older particles, the interface, the air box and sprinkler shadows on the go without any additional settings. Light Piping is a managed transport pipeline available at Unity 2018.1. The LT pipeline provides a single transport transfer utilizing the slight decomposition of each component, with the advantage that all light colors are on a single target. By installing light pressure tubes on the active transfer tube, all the game components are created with the right beard. This is achieved because the pipeline overrides the default machine material. Click Here: MyAssignmentHelp

    1. UNITY STAFF: Delete this spam comment above and add a way to report spam comments on blog posts. This is getting ridiculous.

  13. Cool, I think it’d be nice to have some real documentation so I don’t have to do this thing that takes substantially longer and so it’s possible to deal with API changes.
    Thanks for such a great hard work.

    Regards
    Cindy Nixon
    https://dapper.reviews/

  14. so now it will work with google VR? because LWRP broke didn’t work and i had to revert from it…

  15. We needs AO and Volumetric Fog and SSS shader on URP :]

    1. nope. we need light cookies and point light shadows first.

  16. Where we can get stat like in Post?

    Bandwith and all other in Unity?

    1. those are from Xcode mate

  17. Please separate editor cameras from custom rendering things in SRP..
    In URP, user must make custom RenderPass to support scene view and preview cameras.
    But there is no way to detect cameraType in RenderPass.Configure, that ends up to set RenderFeature for each camera locally..
    It’s difficult to use.

  18. Ahmad Jadallah

    9月 21, 2019 2:03 pm 返信

    Is Temporal Anti Aliasing supported or going to be supported with Universal Rendering Pipeline?

  19. I wonder if already created Android VR games like for Lenovo or Oculus Quest will work well, because i get evrytime heavy problems with LWRP to make a working apk allready

  20. Any Idea about the release date?

  21. Are surface shaders gonna be supported somehow?

    This is one of the main problems for us in order to migrate from legacy to URP

  22. Thanks for the awesome work and investment! I love LWRP/URP; unfortunately, we require point light shadows, camera stacking and deferred (well, that one is a bonus, mostly for SSR) if we want to switch from the legacy built-in RP to URP, so can’t wait for these feature to be added so we can finally switch!

  23. Is the ribbon feature on Particle systems fixed now? They were breaking when using emission by distance, and the way the tiled UVs are implemented makes the texture go back and forth on the trail for some reason

  24. As great as the LWRP/URP is, it’s ridiculous it still doesn’t support turning off “Receive Shadows”…

    1. But it does. “Receive Shadows” property is on material now, not on Mesh Renderer component.

  25. Steve Merghart

    9月 20, 2019 8:22 pm 返信

    Will the URP support projectors and decals?

  26. Oculus is listed as platform here, with Fixed Foveated Rendering not working on the Quest (a requirement for Oculus store submission). Any news about this?

  27. Any news on Point Light shadows? Can’t really use LWRP without this fundamental feature. Been asking for it on the forum roughly a year ago.

    https://forum.unity.com/threads/eta-on-supporting-point-light-shadows-for-lwrp.560455/

    1. It’s on our roadmap, we are trying to get to it asap.

  28. Bryan Livingston

    9月 20, 2019 7:07 pm 返信

    Ambient Occlusion is missing?

    1. It’s being added :)

      1. You mean is available now or you are working on it? Last time I check it wasn’t there or it wasn’t working. Any ETA?

  29. Just please make it easy for people who can’t (procedural content) or won’t use light mapping & light probes. You start such a scene by turning off lots of things and hoping the materials still look Ok? Can’t I choose a pure realtime template for a new scene?

    1. Universal works well with no baked lighting :)

  30. I have some concerns about lwrp/universal. Most of my customer complaints for my assets, Weather Maker in particular, come from strange rendering issues and other problems with LWRP that don’t exist in standard pipeline. Most of these seem to come from built in textures such as shadow maps, camera opaque texture, etc. not working quite right or the render order of events in lwrp not being correct. For example, after opaque render event will execute after post processing which is clearly not right…

    1. Please please please, raise bugs about this. We are working through LWRP / Universal bugs every week and we need to know what to fix!

  31. Any news on the deferred renderer and camera layering? I thought these features were supposed to be coming in 2019.3?

    1. Camera stacking and deferred are being worked on. I think camera stacking will be in a 7.x.x release (sometime for 19.3), deferred likely in a 20.x release of unity.

      1. Thanks for all the hard work

      2. Nikolaj Stausbøl

        9月 27, 2019 5:27 pm 返信

        Great! Camera Stacking seems to be essential for phone based AR. Post processing works perfectly, but is also applied to the camera background. If there’s another way to ignore the background when adding post processing, I would love to know, but otherwise I guess we’re waiting for Render Pass support. Hope it’s soon :)