Search Unity

How the Lightweight Render Pipeline is evolving

, Сентябрь 20, 2019

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. 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!

Добавить комментарий

Вы можете использовать эти теги и атрибуты HTML: <a href=""> <b> <code> <pre>

  1. 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 ?

  2. 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

  3. 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.

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

  5. 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.

  6. What about volumetric fog in URP?

  7. 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. Same here… Will switch to URP only until there’s easy to use camera stacking…

  8. What is going on with URP and ARFoundation?

  9. 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.

  10. 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.

    Cindy Nixon

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

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

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

  13. Where we can get stat like in Post?

    Bandwith and all other in Unity?

    1. those are from Xcode mate

  14. 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.

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

  16. 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

  17. Any Idea about the release date?

  18. Are surface shaders gonna be supported somehow?

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

  19. 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!

  20. 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

  21. 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.

  22. Will the URP support projectors and decals?

  23. 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?

  24. 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.

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

  25. Ambient Occlusion is missing?

      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?

  26. 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 :)

  27. 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!

  28. 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. 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 :)