Unity Term Book
グラフィックスとエフェクト

SRP / URP / HDRP

Scriptable Render Pipeline は Unity の柔軟な描画アーキテクチャで、URP(Universal)と HDRP(High Definition)の二大プリセットがあります。選定・移行・Renderer Feature の基礎を整理できます。図解でパイプライン差を比較できます。

想像してみてください...

Built-in Renderer は普通の家庭用キッチン——何でも作れますが電力を無駄にし最適化されていません。 URP最新の IH コンロ——速く効率的で、モバイルやインディーに最適。 HDRPミシュランの厨房——細部は完璧ですがハイエンド機材(PC/コンソール)が必要です。

概念の詳細

SRP (Scriptable Render Pipeline): Unity 2018 以降、 C# API でレンダーパイプラインをカスタマイズできます。自作(custom SRP)か、二つのプリセット URPHDRP を使います。

URP (Universal RP): 旧 LWRP。モバイル、Web、Switch向け。 シングルパスのフォワードレンダリングに加え 2D Renderer もあります。Shader GraphVFX Graph を使います。Built-in より優れますが、一部の高度機能(レイトレーシング、複雑なポストプロセス)は省略します。

HDRP (High Definition RP): ハイエンド PC/コンソール向け。Ray Tracing、DLSS/FSR、Volumetric Lighting、Screen Space AO、Contact Shadows、Tessellation… GPU 負荷は高いが、最高の見た目。

切り替え: 一度選ぶと自由にパイプラインを hop できません。 Materials/Shaders の更新が必要です。Edit → Rendering → Materials → Convert… で自動移行できます。

機能比較

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

最初から pipeline を選ぶ — 後から material/shader を移行すると手間がかかり、pink shader になりやすい。

ハンズオン手順

1

プロジェクト作成時にパイプラインを選ぶ

Unity Hub → New Project → テンプレートを選ぶ(3D Core = Built-in、URP、HDRP)。最初に決める。

2

既存プロジェクトに URP を追加

Package Manager → "Universal RP" をインストール → Assets/Create/Rendering/URP Asset → Project Settings → Graphics に割り当て。

3

マテリアルを変換

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

4

Renderer Features を使う

URP Renderer → Add Renderer Feature(Outline、SSAO、Custom…)— Built-in の Image Effects に相当。

インタラクティブシミュレーター

Built-in / URP / HDRP を比較——対象プラットフォーム、性能、機能。

🎯

Target

全プラットフォーム(レガシー)

Performance

普通 — 最適化されていない

🎨

Visual

基本、ポストFXは限定的

// 旧 Shader(Built-in)
Shader "Custom/OldShader" {
  SubShader { /* 旧 CG/HLSL */ }
}
✓ レガシー互換✓ 始めやすい✗ Shader Graph なし✗ Deprecated

表示中: Built-in Render Pipeline

コード例

基本

カスタム Renderer Feature — URP Renderer アセットに追加して描画パスを注入。

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;
}

📌 要点

  • URP = インディー、モバイル、2D に適する
  • HDRP = AAA グラフィックス、ハイエンド PC/コンソール
  • パイプラインは最初に選ぶ——移行は大変!
  • SRP Batcher が URP のドローコール性能を上げる

⚠️ よくあるミス

  • ❌ Built-in シェーダーが URP で動かない

    マテリアルがマゼンタ(シェーダー欠落)

    ✅ マテリアルを変換するか Shader Graph で作り直す

  • ❌ URP で古い Graphics.Blit API を使う

    非推奨——不具合や効果なし

    ✅ Blitter.BlitCameraTexture を使う(URP 13+)