Unity Term Book
Graphics & Rendering

SRP / URP / HDRP

Scriptable Render Pipeline is Unity's flexible rendering architecture, with two built-in presets: URP (Universal, for most games) and HDRP (High Definition).

Imagine...

The Built-in Renderer is a regular home kitchen — it can cook anything, but it wastes power and is not optimized. URP is a modern induction cooktop — fast, efficient, right for mobile and indie. HDRP is a Michelin kitchen — every detail is perfect, but you need high-end hardware (PC/console).

The concept in detail

SRP (Scriptable Render Pipeline): Since Unity 2018, you can customize the render pipeline through a C# API. Write your own (custom SRP) or use the two presets: URP and HDRP.

URP (Universal RP): Formerly LWRP. Tuned for mobile, web, Switch. Single-pass forward rendering, plus a 2D Renderer. Uses Shader Graph and VFX Graph. Better than Built-in, but it skips some advanced features (ray tracing, complex post-process).

HDRP (High Definition RP): For high-end PC/console. Ray Tracing, DLSS/FSR, Volumetric Lighting, Screen Space AO, Contact Shadows, Tessellation… GPU-heavy, but the best visuals.

Switching: You cannot freely hop pipelines after you pick one. Materials/Shaders need an update. Use Edit → Rendering → Materials → Convert… for an automatic migrate.

Feature comparison

FeatureBuilt-inURPHDRP
Shader Graph
VFX Graph
Ray Tracing
Volumetric LightingPartial
2D Renderer
Mobile Support
DLSS / FSRPartial

Pick a pipeline from the start — migrating materials/shaders later is costly and often causes pink shaders.

Hands-on steps

1

Pick a pipeline when you create the project

Unity Hub → New Project → choose a template (3D Core = Built-in, URP, HDRP). Decide up front.

2

Add URP to an existing project

Package Manager → Install "Universal RP" → Assets/Create/Rendering/URP Asset → assign it in Project Settings → Graphics.

3

Convert materials

Edit → Rendering → Materials → Convert Selected/All Built-in Materials to URP.

4

Use Renderer Features

URP Renderer → Add Renderer Feature (Outline, SSAO, Custom...) — the Built-in equivalent of Image Effects.

Interactive simulator

Compare Built-in / URP / HDRP — target platform, performance, and features.

🎯

Target

All platforms (legacy)

Performance

Average — not optimized

🎨

Visual

Basic, limited post-FX

// Legacy shader (Built-in)
Shader "Custom/OldShader" {
  SubShader { /* Legacy CG/HLSL */ }
}
✓ Legacy compatible✓ Easy to start✗ No Shader Graph✗ Deprecated

Viewing: Built-in Render Pipeline

Code example

Basic

Custom Renderer Feature — add it to a URP Renderer asset to inject a render pass.

using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;

// Custom Renderer Feature — add to a URP Renderer asset
public class OutlineRendererFeature : ScriptableRendererFeature
{
  public OutlineSettings settings = new OutlineSettings();

  private OutlineRenderPass _pass;

  public override void Create()
  {
      _pass = new OutlineRenderPass(settings);
      _pass.renderPassEvent = RenderPassEvent.AfterRenderingOpaques;
  }

  public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
  {
      renderer.EnqueuePass(_pass);
  }
}

[System.Serializable]
public class OutlineSettings
{
  public Color outlineColor = Color.white;
  [Range(0f, 10f)] public float outlineThickness = 2f;
}

📌 Quick recap

  • URP = good for indie, mobile, 2D
  • HDRP = AAA graphics, high-end PC/console
  • Pick the pipeline first — migrating is hard!
  • SRP Batcher boosts URP draw-call performance

⚠️ Common mistakes

  • ❌ A Built-in shader does not work in URP

    The material turns magenta (missing shader)

    ✅ Convert materials or rebuild them in Shader Graph

  • ❌ Using the old Graphics.Blit API in URP

    Deprecated — glitches or no effect

    ✅ Use Blitter.BlitCameraTexture (URP 13+)