Search Unity

How the Lightweight Render Pipeline is evolving

September 20, 2019 in Engine & platform | 8 min. read
Share

Is this article helpful for you?

Thank you for your feedback!

We have renamed the Lightweight Render Pipeline in 2019.3. It’s now the Universal Render Pipeline, a powerful solution that delivers beautiful graphics and performance while scaling to a wide range of platforms. The Universal Render Pipeline supports the latest artist tools, and it’s suitable for 2D, 3D, virtual reality (VR), and augmented reality (AR) projects.

The Lightweight Render Pipeline (LWRP) was designed to be a fast, scalable pipeline enabling high-quality graphics across all mobile devices supported by Unity. Over the last year, this Scriptable Render Pipeline has become production-ready, and we have continued to extend its features, performance, and platform support. 

We wanted the render pipeline to have broad applications with universal benefits. It is now a powerful solution that delivers beauty and performance while scaling to a wide range of platforms. Whether you’re building 2D, 3D, VR, or AR projects, if you want to develop once and deploy everywhere, this is the rendering technology to use. In 2019.3, the LWRP has evolved into the Universal Render Pipeline.

Platforms supported

The platform reach of the Universal Render Pipeline continues to grow.

Benefits of using the Universal Render Pipeline

  • Production-ready now
  • Develop once and deploy on any platform that Unity runs
  • Ideal for making all types of projects (2D, 3D, XR)
  • Tools designed for artists (Visual Effect Graph, Shader Graph, Render Passes)
  • Growing to become the default rendering option for Unity projects
  • Supported in 2019.4 LTS

What you need to know about upgrading from LWRP

The Universal Render Pipeline is a continuation of the LWRP, just with a new name. For creators, the transition from LWRP to Universal Render Pipeline should be relatively seamless. Projects that currently use the LWRP will upgrade to Universal Render Pipeline with very little intervention. Custom rendering effects and shaders written in LWRP will automatically upgrade to Universal Render Pipeline. You will have to manually upgrade shader paths only if you are using Shader.Find or UsePass in your custom shaders.

When upgrading to Universal Render Pipeline, you will also have to upgrade post-processing effects. Post-processing is now integrated directly into the pipeline; you do not need a separate package. We’ve improved the user experience, and it is more performant than PPv2. However, the post-processing does not currently support custom effects; we plan to add this support.

In the Universal Render Pipeline, post-processing features include Anti-aliasing, Depth of Field, Motion Blur, Panini projection, Bloom, Lens Distortion, Chromatic Aberration, Color Grading and Tonemapping, Vignette, Film Grain, and 8-bit Dithering.

Some Universal Render Pipeline post-processing effects

Stay tuned for a detailed guide to upgrading the LWRP to URP.

Why you should upgrade from the built-in render pipeline

Universal Render Pipeline is extensible

Unity’s built-in render pipeline allowed developers to choose between forward and deferred rendering paths. Extensibility was achieved by injecting command buffers into specific events in the pipeline. However, it was not possible to add custom rendering strategies, and extending the existing ones was limited to a few injection points. 

Universal Render Pipeline increases extensibility by introducing the concept of renderers. A renderer implements a set of features and lighting strategy. 

In 2019.3, Universal Render Pipeline comes with a forward renderer that shades all lights in a single pass and a 2D renderer that supports multiple types or real-time lights. An optimized deferred renderer is coming soon. 

When setting up a project, developers can now declare the list of renderers in the pipeline asset so that each camera can use a renderer from that list.

On the right: Pipeline asset contains list of renderers. On the left: Select a renderer for the camera to use.

Developers can create their own renderers to extend the pipeline with additional rendering strategies such as Tile/Cluster-based rendering. By implementing a custom renderer for Universal Render Pipeline, instead of working on a custom rendering pipeline from scratch, the Universal Render Pipeline handles a lot of rendering boilerplate for you. Once a renderer is implemented, it’s all plug and play.

You can also extend renderers with additional renderer features. These features are scriptable objects that contain resources and logic to inject render passes in a renderer. Each feature can inject one or multiple render passes at specific events in the renderer. The Universal Render Pipeline contains a general purpose RenderObjects feature that provides a lot of customization. You can add it to a renderer by adding it to the “Renderer Features” list in the renderer. Users can also create custom features. Universal Render Pipeline provides a script template to create features available at Asset -> Create -> Rendering -> Universal Render Pipeline -> Renderer Feature. If you want to know more about extending the Universal Render Pipeline, you can follow this presentation and check out these custom rendering examples.

On the left: FPSSetup is a Forward Renderer with additional renderer features. On the right: By clicking on the "+" icon you can add features to a renderer.

Universal Render Pipeline extensibility in action

The development team behind Crest Ocean, which is available on the Asset Store, was able to extend the Universal Render Pipeline to create realistic oceans. Effects like this were hard to achieve before, but with explicit hooks, it’s now possible to extend rendering significantly without having to write a renderer from scratch.

Performance benefits of the Universal Render Pipeline

Universal Render Pipeline is a leaner rendering solution than our previous built-in render pipeline, while also delivering improved quality. When upgrading a project from the built-in render pipeline to the Universal Render Pipeline, you should expect similar or improved performance. 

We converted the Polygon Farm asset pack from the built-in render pipeline to Universal Render Pipeline and compared visuals and performance on an iPhone 6S. We tweaked both projects to make sure the quality and rendering settings matched. By using Universal Render Pipeline, we were able to achieve higher frame rates without reducing the visual quality.

Universal Render Pipeline
Universal Render Pipeline
Built-in render pipeline
*Difference in draw calls is due to the fact that Universal Render Pipeline doesn’t render additional draw calls for each additional light. **Difference in batches is due to the fact that Universal Render Pipeline batches per shader while Built-in batches per material.

If you convert a project and don’t get a performance improvement, the first thing to check is whether the quality settings between the two pipelines match. The Universal Render Pipeline controls all aspects of quality in the pipeline asset. The pipeline now supports setting a pipeline asset per quality setting. This way, you can scale quality between different platforms while centralizing all quality settings in the pipeline asset. This differs from the built-in renderer where the settings are scattered across Quality Settings and Graphics Tiers. When you convert a project to Universal Render Pipeline, the settings from your original project don’t get automatically upgraded. You must manually upgrade the quality settings.

If you have a case where the converted project matches quality, but you are experiencing worse performance with the Universal Render Pipeline, please submit a bug report.

The future of the Universal Render Pipeline

We’re committed to evolving the Universal Render Pipeline. We want you to take advantage of features like VFX Graph, Shader Graph, Custom Render Passes, and the latest Post-Processing. The Universal Render Pipeline lets you develop once and deploy to a wide range of platforms while achieving the same or better quality and performance.

In 2020, we’re working towards feature parity with the Built-in renderer, including deferred renderer and camera stacking. You’ll be able to use the same set of features in your project, but not necessarily the same way. 

While developing the Scriptable Render Pipeline, we took the time to redesign our rendering system. Some previous features will remain deprecated as we have developed better alternatives. Some examples of features that changed in Universal Render Pipeline are the rendering callbacks, grabpass, and camera stacking.

Besides evolving features, we are continually improving performance. Given the same quality settings, Universal Render Pipeline has equal or more performance than our previous rendering solution in most cases. Where that’s not the case, we’re treating those situations as regressions and processing them as bugs.

In 2021, we want to ensure that performance for all supported platforms is maintained while we grow the Universal Render Pipeline with features for high-end mobile and console platforms.

Universal Render Pipeline and High Definition Render Pipeline

The Universal Render Pipeline does not replace or encompass the High Definition Render Pipeline (HDRP).

The Universal Render Pipeline aims to be the future default render pipeline for Unity. Develop once, deploy everywhere. It is more flexible, is more extensible and delivers higher performance than the built-in render pipeline, and has improved graphics quality.

HDRP delivers state-of-the-art graphics. HDRP is the best to use if your goal is more targeted – pushing graphics on high-end hardware, delivering performant powerful high-fidelity visuals. 

You should choose the render pipeline to use for a project according to the features and platform requirements of your project.

Start using the Universal Render Pipeline

You can start taking advantage of all the production-ready features and performance benefits today. Upgrade your projects using the upgrade tooling or start a new project using our Universal template from the Unity Hub.

Please send us feedback in the Universal Render Pipeline forum!

September 20, 2019 in Engine & platform | 8 min. read

Is this article helpful for you?

Thank you for your feedback!