在开发初期选择合适的Unity 渲染管线非常重要。
不同的渲染管线一系列操作,将场景内容显示在屏幕上。Unity 允许您选择预建的渲染管线,或编写自己的渲染管线。 更多信息
参见 词汇表具有不同的功能并表现出不同的性能,因此它们最适合不同的游戏、应用程序和平台。
将项目从一个渲染管线切换到另一个渲染管线可能非常耗时,尤其是在项目开发后期。不同的渲染管线使用不同的着色器在 GPU 上运行的程序。 更多信息
参见 词汇表并且可能没有相同的功能。
该表显示了管线之间的一些高级差异,以帮助您在开始时为项目选择合适的管线。
注意:您不能同时使用通用渲染管线和高清渲染管线 (HDRP)。它们都是使用可脚本化渲染管线 (SRP) 构建的,但它们的渲染路径和光照模型不同。
功能 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 内置渲染管线 |
---|---|---|---|
目标用途 | 需要跨所有平台渲染可扩展性的项目,特别是基于图块的延迟渲染 (TBDR) 平台和无线 VR 平台。 需要扩展和自定义渲染管线的项目。 2D 和 3D 项目。 |
需要在高端平台上实现逼真和高保真渲染的项目 3D 项目 |
需要跨所有平台渲染可扩展性的项目。 2D 和 3D 项目。 |
平台支持 | 支持所有 Unity 支持的平台 专注于基于图块的延迟渲染 (TBDR) 平台和无线 VR 平台的效率 |
支持桌面、Xbox 和 PlayStation 平台 专注于有效利用高级 GPU 硬件功能,例如异步计算着色器,以及硬件支持的情况下进行光线追踪。 |
支持所有 Unity 支持的平台 |
源代码访问 | 主要是 C# 公开访问GitHub 上的 URP 源代码。您还可以使用 URP 作为基础创建自定义管线 比内置渲染管线更容易阅读、更改和扩展源代码 |
主要是 C# 公开访问GitHub 上的 HDRP 源代码。您还可以使用 HDRP 作为基础创建自定义管线 比内置渲染管线更容易阅读、更改和扩展源代码 |
主要是 C++ 通过购买源代码访问权限进行私有访问 |
管线扩展 | 管线提供的 API 和注入点,或者您可以修改公开的源代码 比内置渲染管线更容易扩展 |
管线提供的 API 和注入点,或者您可以修改公开的源代码 比内置渲染管线更容易扩展,但比 URP 更难,因为 HDRP 复杂且具有高级功能 |
管线提供的 API 和注入点 |
通过美术工具进行自定义 |
Shader Graph,可用于自定义着色、材质和屏幕空间效果 内置粒子系统,可用于自定义视觉效果。自定义有限 VFX Graph,可用于设计视觉效果,从简单的常见粒子行为到在 GPU 上运行的复杂模拟。 |
Shader Graph,可用于自定义着色、材质和屏幕空间效果 内置粒子系统,可用于自定义视觉效果。自定义有限 VFX Graph,可用于设计视觉效果,从简单的常见粒子行为到在 GPU 上运行的复杂模拟。 |
Shader Graph,可用于自定义着色、材质和屏幕空间效果 Shader Graph 除了对现有功能进行错误修复外,不会收到内置渲染管线支持的更新 内置粒子系统,可用于自定义视觉效果。自定义有限 |
通过手写着色器进行自定义 | HLSL 着色器和源代码中的 URP 着色器,您可以对其进行自定义 | HLSL 着色器和源代码中的 HDRP 着色器,您可以对其进行自定义 仅建议高级用户使用手写着色器,因为 HDRP 着色器复杂且具有高级功能 |
HLSL 着色器和表面着色器 |
灯光 | 专为逼真和风格化的灯光而设计 基本 PBR 和一些高级 PBR,例如清漆 更容易为自定义照明模型(例如卡通着色)进行自定义 |
专注于逼真的物理精确照明,并内置支持物理光单位 基本和高级 PBR。例如清漆、皮肤、头发、眼睛、次表面散射和水 高级屏幕空间和体积效果 更难为自定义照明模型(例如卡通着色)进行自定义 |
专为逼真和风格化的灯光而设计 基本基于物理的渲染 (PBR) 更容易为自定义照明模型(例如卡通着色)进行自定义 |
性能 | 支持静态批处理和动态批处理 使用可脚本化渲染管线 (SRP) 批处理程序进行高级绘制调用批处理 与BatchRenderer Group API 和Entities兼容 |
支持静态批处理 使用可脚本化渲染管线 (SRP) 批处理程序进行高级绘制调用批处理 与BatchRenderer Group API 和Entities兼容 |
支持静态批处理和动态批处理 |
请参阅渲染管线功能比较,了解有关哪个管线与哪些功能兼容的详细信息,以帮助您为项目选择合适的管线。