Search Unity

In a recent blog post we introduced the concept of Scriptable Render Pipelines. In short, SRP allow developers to control how Unity renders a frame in C#. We will release two built-in render pipelines with Unity 2018.1: the Lightweight Pipeline and HD Pipeline. In this article we’re going to focus on the Lightweight Pipeline or LW RP.

By exposing the rendering pipelines to C# our goal is to make Unity less of a black box and enable developers to explicitly control what is happening during rendering. Developers can use the built-in pipelines we’re providing, develop their own pipeline from scratch or start by modifying  one of the provided pipelines to meet their specific requirements.

We’ve released a video which provides a short overview of the Scriptable Render Pipeline concept including some footage of projects using the various pipelines:

The goal of the LW RP is to provide optimized real time performance on performance constrained platforms by making some tradeoffs with regard to lighting and shading.

The target audience for LW RP is developers targeting a broad range of mobile platforms, VR and those that develop games with limited realtime lighting needs. The LW RP performs single-pass forward rendering with one real time shadow light and light culling per-object with the advantage that all lights are shaded in a single pass. Compared to the legacy pipeline forward rendering, which performs an additional pass per pixel light within range, using the LW pipeline will result in less draw calls. This is at the expense of some additional shader complexity due to more lights per pass.  The LW RP is also supported by our Shader Graph tool, which will provide some additional benefits with regard to shader authoring workflow.

Lightweight Shaders

The LW RP has its own process for rendering and therefore requires shaders which are written with it in mind. We have developed a new set of Standard Shaders that are located under the Lightweight Pipeline group in the material’s shader selection dropdown. These include a Standard PBR shader, a Non PBR Standard shader with a simplified lighting model, a Standard Terrain shader and a Standard Unlit shader.  It’s worth noting that all Unity’s unlit stock shaders work already with LW RP. This includes legacy particles, UI, skybox, and sprite shader.

The Lightweight Pipeline also provides material upgraders to upgrade Unity’s stock lit shaders to shaders compatible with the pipeline. In order to upgrade materials go to Edit -> Render Pipeline -> Upgrade -> Lightweight. You can choose to either upgrade all material in a project, or selected materials.

Material Upgraders

The Render Pipeline Asset

The currently selected render pipeline is selected by assigning a pipeline asset in the Scriptable Render Pipeline Settings of the Graphics Settings window. It can also be assigned from script via the GraphicsSettings.renderPipelineAsset property.

In addition to selecting a pipeline to define the overall rendering approach of your project at the outset, it’s possible to store multiple quality settings within different instances of the same type of render pipeline. The pipeline asset controls the global rendering quality settings and is responsible for creating the pipeline instance. The pipeline instance contains intermediate resources and the render loop implementation.

Lightweight Rendering

The rendering features of the LW RP are mainly a subset of the built-in renderer. In order to improve performance on performance limited platforms, certain functionality has been deliberately excluded. Unity provides developers with a wide array of tools and techniques to apply to their games. The risk in this is that sometimes the wrong technique is applied to a game which doesn’t have the performance resources to support it.  The goal of providing specialized rendering pipelines as templates is to mitigate the possibility for users to make certain potentially costly mistakes in terms of performance. Deploying inappropriate post processing effects for a target platform for example may make the game slow on a device, even though those effects are supported in Unity and might perform appropriately on the appropriate target platform.

Realtime global illumination is another example of a feature which is rarely used on the LW RP target platforms and has therefore been removed. The single supported rendering path is single-pass forward, which is another decision which privileges performance over rendering complexity. The table below provides further detail about which techniques are supported in the Built-In Pipeline, and which are supported in Lightweight.

Unity Built-In Pipeline Lightweight Pipeline
Platform Coverage All All
Rendering Paths Multi-pass Forward

Multi-pass Deferred

Single-pass Forward
Lighting Attenuation  Separate precomputed attenuation textures for Point and Spot

Vertex light attenuation does not reach 0 intensity at range boundary.

Attenuation computed in the shader smoothly fading to light range. Inner and outer angle for spot lights.
Color Space Linear with sRGB light intensity


Linear preferred, Gamma supported

Linear light intensities

Realtime Lights Directional, Spot and Point

Amount of pixel lights controlled by Quality Settings

Forward path limited to 8 pixel lights.

Supports up to 4 vertex point lights.

Directional, Spot and Point

Amount of pixel lights controlled by Pipeline Asset

Limited to 8 pixel lights.

Supports up to 4 vertex point lights.

Light Modes Baked


Baked Indirect

Shadow Mask

Distance Shadowmask





Baked Indirect


Global Illumination Directional, Spot, Point and Rectangular Area Lights


Lightmap (Non-Directional and Directional)

Light Probes


Dynamic Lightmap

Realtime Lightprobes

Directional, Spot, Point and Rectangular Area Lights


Lightmap (Non-Directional and Directional)

Light Probes

Realtime GI Not Supported.

Light Culling Per-Object. No Compute. Per-Object. No Compute.
Shader Library Dozens of non physically based shaders specializations

Unified Standard PBS Shaders:

Metallic workflow

Specular workflow

Roughness workflow

Unified Standard non physically based Shader (covers most legacy and mobile lit shaders)

Unified Standard Shader (Metallic or Specular workflow)

Physically Based Shading Disney Diffuse + Cook Torrance (GGX, Smith, Schlick) Specular

Lambertian Diffuse + Simplified Cook Torrance (GGX, Simplified KSK and Schlick) Specular

Lambertian Diffuse + Non-Microfaceted LUT Specular

Lambertian Diffuse + Simplified Cook Torrance (GGX, Simplified KSK and Schlick) Specular
Light Cookies Monochrome Not supported in V1
Light Probes Modes One interpolated probe


One interpolated probe
Reflection Probes Sorted per-object, blend between at most 2 probes Sorted per-object, no blending
Shadows Features PSSM Stable and Close Fit

Filtering: PCF

No depth clip. Pancaking done in vertex.

PSSM Stable Fit

Filtering: PCF

No depth clip. Pancaking done in vertex.

Shadow Modes Light Space

Screen Space

Screen Space
Shadow Casting Lights Directional, Spot, Point

Multiple shadow light casters, one per-pass.

Directional and Spot

Single shadow light caster supported as main light.

Camera Sorts camera by depth value

Stack Management

Groups by common camera state

Handles depth state between cameras

Sorts camera by depth value

No stack management

RenderTarget scale supported

Game renders at scaled resolution

UI renders at native resolution

Anti-Aliasing MSAA, TAA MSAA
Pipeline Additional Data Motion Vectors None
Post-Processing Legacy Post-Processing stack

new Post-Processing Stack

Subset of the new Post-Processing Stack FX

No support for: TAA, Motion Blur, SSR

Debug option Display GBuffer

Display various bake lighting view mode

Sky lighting Procedural Sky

Cubemap/LatLong Sky

Ambient Lighting

Procedural Sky


Ambient Lighting


Customizing The Lightweight Pipeline

The incredible potential of the Scriptable Render Pipeline architecture is that it’s more open and customizable than rendering in Unity ever has been. If you want to have access to Lightweight Pipeline source, take a look at the Scriptable Render Pipeline github page. There you can grab the C# source for the LW RP and begin making modifications to create a pipeline which is uniquely suited to your project. If you run into any issues, we’d love to hear about them via our github page. We’re also looking forward to hearing from you on the beta forum.



Subscribe to comments

Leave a reply

You may use these HTML tags and attributes: <a href=""> <b> <code> <pre>

  1. Since mixed mode is not fully supported LWRP does not worth for the moment

  2. Question: I note the list of lightweight ready shaders doesn’t mention unlit shaders. How hard will it be to convert our shaders to this pilepline? you guys got any info on that, please? That’s the only thing that will stop me pulling the trigger.

    Also, anyone got any performance metrics on this for VR? i.e. Lightweight vs 2017 standard renderer pipeline?

    1. From the article: “It’s worth noting that all Unity’s unlit stock shaders work already with LW RP. ” Hope that helps.

    2. Coming soon!

  3. Table shod be extended to explain Lightweight VR, 3D Ultra, and HD pipeline.

    1. – Lightweight VR is the same as this pipeline (mostly) with more components for VR
      – 3D Ultra is builtin as you have now but with settings maxed out
      – HD pipeline is still WIP, they don’t fully know the limits, but it will be addressed in it’s own blog

      As this blog is about lightweight, it stands to reason it’s best to compare lightweight with existing built in. That’s how I’ve understood it anyway.

  4. Similar article for HD Pipeline? Pretty please?

  5. Could you make a super ultra lightweight (fast) render pipeline just for 2D which is even more performant than the lightweight one, which completely ignores all 3D features and lighting etc?

    1. 3D with no lighting would also be great. I hope the system is easy enough to use that all our needs can be met without too much trouble.

      1. As someone else mentioned, this should be achievable now using unlit shaders, unless I misunderstand your point.

    2. @imaginaryhuman that pipeline is called Unlit Shaders.

    3. I’m pretty sure if Unity does not do it them selves someone will put one on the Asset Store :)

      1. The fact that this is a more open architecture means that yes, I think we will see many unique asset store solutions being offered for more specific pipeline needs.

  6. Awesome! I note there is a limitation of one shadow casting light at a time. I wondered what strategies there would be for moving between lights that should in theory cast a shadow. I’m reminded of the technique in Windwaker where they lerped the cast “light” from light to light as you got in range. What would be an efficient way to do it here (if necessary?) in order to enhance the quality of LW without extra cost?

  7. Great article. Much needed