Unity URP 全面教程
从零配置 Universal Render Pipeline,到光照、后处理、Shader Graph 与性能优化,一站式掌握 URP 的全部核心知识。

适用版本:Unity 2021–2023 LTS,示例基于 URP 14.x。若使用高版本,仅需少量界面差异调整。

目录

  1. URP 简介
  2. 安装与升级
  3. 管线资产设置
  4. 光照与阴影
  5. 材质与 Shader Graph
  6. 后处理 Stack
  7. Renderer Features
  8. 性能调优
  9. 常见问题
  10. 结语

一、URP 简介

Unity 官方推出的 Universal Render Pipeline(URP) 旨在取代 Built‑in 管线,提供跨移动、PC、主机的统一高效渲染。特点:

  • Forward+ 光照:支持数百实时光源(2022.2+)。
  • Shader Graph 零代码编写材质。
  • 集成 Post‑ProcessingRenderer Features 可扩展性。
  • SRP BatcherNative RenderPass,SetPass 调用大减。

二、安装与升级

新项目

  1. Unity Hub → New Project → 选择 3D(URP) 模板。
  2. 自动生成 Settings/UniversalRenderPipelineAsset

旧项目升级

  1. Package Manager 搜索 Universal RP → Install(或升级)
  2. 菜单 Edit → Render Pipeline → URP → Upgrade Project Materials
  3. Graphics & Quality 中分别指定 URP Asset
  4. 升级后检查:
    • 粒子 Shader(需改 Universal Render Pipeline/Particles/*
    • Unlit 材质(改 URP/Unlit
    • 自定义 GrabPass → 改 Render Features

三、管线资产设置

选项 建议 说明
HDR 开启 除非移动端极限压帧
MSAA 4×(移动)/ 0(PC) 与 TAA/FXAA 互斥
Render Scale 1 (默认) 0.8–0.9 可提帧
Shadow Resolution 1024–2048 需与平台匹配
Additional Lights Per‑Pixel 2D/卡通可选 Vertex

pipeline_asset


四、光照与阴影

1. Main Light

  • 日光/主光源,支持 Cascaded Shadows。
  • 勾选 Cast Shadows,并在 URP Asset 设置分辨率。

2. Additional Lights

  • 前向 Pass 每像素可叠加 8 盏(可调)。
  • 2022+ 在 Forward+ 模式支持 256 盏。

3. Shadow Bias 调优

Light l = GetComponent<Light>();
l.shadowBias = 0.005f;      // 减 Peter‑Panning
l.shadowNormalBias = 0.3f;  // 减 Acne

五、材质与 Shader Graph

  1. 新建 Shader GraphCreate → Shader → URP → Lit Shader Graph.
  2. 使用 Master Stack 接口:Base Color, Normal, Smoothness.
  3. 关键节点Time, Sine, UV, Sample Texture 2D.
  4. Graph Inspector ➜ 勾选 Alpha Clip 做 Cutout。
  5. 生成材质:右键 Graph → Create → Material

示例:水波材质 —— TimeSine 扰动 UV,实现动水面。


六、后处理 Stack

URP 自带 Volume System:

GameObject → Volume → Global Volume
  • 添加 Bloom、Depth Of Field、Tonemapping 等效果。
  • 切换 Color SpaceLinear 以获得更佳效果。
  • 移动端可用 FXAA 替代 TAA。

七、Renderer Features

Feature 用途
Render Objects 额外渲染某图层,做描边
Screen Space Shadows 大幅提升实时阴影质量
Decal (URP 14) 实时贴花
FullScreen Pass 自定义后处理

示例添加:Assets → Settings → ForwardRenderer → Add Renderer Feature

// 自定义 FullScreen Pass
public class RippleFeature : ScriptableRendererFeature
{
    public Shader rippleShader;
    class Pass : ScriptableRenderPass { /*...*/ }
    public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData data)
    {
        renderer.EnqueuePass(_pass);
    }
}

八、性能调优

技巧 收益
打开 SRP Batcher CPU SetPass ‑60%
Opaque Texture 未用时关闭 节省带宽
渲染比例 Render Scale 0.9 +10 FPS(移动)
使用 Mesh LODGroup GPU 三角节省
启用 URP Dynamic Resolution 帧率保底
避免 Realtime GI 在移动端 CPU/GPU 双杀

九、常见问题

症状 排查点
场景过曝 检查 Tonemapping 未启用、HDR 勾选
Shader Graph 粉色 Graph 未保存 / URP 版本不匹配
阴影闪烁 Shadow Bias、Near Plane 过低
粒子发黑 材质 Shader 升级到 URP/Particles/Lit
FPS 低 SRP Batcher 未勾、Overdraw

结语

URP 已成为 Unity 默认渲染管线。通过本教程,你应已掌握 安装升级 → 管线配置 → 材质光照 → Renderer Feature → 性能调优 的完整流程。深入实践,用 Shader Graph 与自定义 Pass 打造独特视觉效果,释放硬件潜能!


附件

  • Shaders/WaterRipple.shadergraph — 水波 ShaderGraph
  • RendererFeatures/RippleFeature.cs — 自定义全屏 Pass
  • Docs/URP_QuickSettings.pdf — 速查表

需要完整示例工程?留言即可获取 GitHub 地址。


Last modified on 2025-06-09