Unity URP渲染管线
文章目录
一、什么是渲染管线?
- 渲染管线执行一系列操作来获取场景的内容,并将这些内容显示在屏幕上。概括来说,这些操作如下: 剔除、渲染、后期处理。
- 不同的渲染管线具有不同的功能和性能特征,并且适用于不同的游戏、应用程序和平台。将项目从一个渲染管线切换到另一个渲染管线可能很困难,因为不同的渲染管线使用不同的着色器输出,并且可能没有相同的特性。因此,必须要了解Unity 提供的不同渲染管线,以便可以在开发早期为项目做出正确决定。
二、渲染管线分类?
- 内置渲染管线是 Unity 的默认渲染管线。这是通用的渲染管线,其自定义选项有限。
- 通用渲染管线 (URP) 是一种可快速轻松自定义的可编程渲染管线,允许您在各种平台上创建优化的图形,这种现在项目中比较常见。
- 高清渲染管线 (HDRP) 是一种可编程渲染管线,可让您在高端平台上创建出色的高保真图形。HDRP 一般用于 AAA 级高品质游戏、汽车演示、建筑应用以及任何需要高保真图形的应用。HDRP 使用基于物理的光照和材质,并且支持前向渲染和延迟渲染。HDRP 使用计算着色器技术,因此需要兼容的 GPU 硬件。
- 可以使用 Unity 的可编程渲染管线 API 来创建自己的自定义渲染管线。
三、使用步骤
1.新建项目
- 打开Unity Hub,选择新建项目会出现URP项目模板
2.将原有Unity项目从内置转为通用渲染管线
-
升级现有的内置渲染管线项目时,需要为项目添加 URP 资源包(URP package)
-
右击项目(Project)窗口并选择创建(Create)> 渲染(Rendering)> Universal Renderer PIipeline > Pipeline Asset(Forward Render)。
- URP 创建后是两个文件,每个文件都有一个资源扩展名。
-
编辑(Edit)> 项目设置(Project Settings),打开图形(Graphics)面板。点击无(渲染管线资源)(None (Render Pipeline Asset))旁的小圆点。在打开的面板中,选择通用 RP(UniversalRP)。
-
这个时候点击Main Camera 在Inspector面板中即可查看URP渲染管线
四、如何使用URP渲染管线提高画质
在Unity中使用URP(Universal Render Pipeline)提升渲染质量,可以通过以下步骤进行:
1、 使用高质量的纹理和材质
- 确保使用的纹理分辨率足够高,且材质设置得当,以提升视觉效果。
2、优化光照设置
- 使用高质量的光照,如实时全局光照(Global Illumination),并合理设置光源参数,如阴影质量、光照强度等。
3、使用后处理效果
- URP支持多种后处理效果,如Bloom(泛光)、Color Grading(色彩校正)、Depth of Field(景深)、Anti-aliasing(抗锯齿)等,合理使用这些效果可以显著提升画面质量。
4、启用动态分辨率
- 动态调整游戏的渲染分辨率,可以在保持较高帧率的同时,尽可能提升画面质量。
5、优化Shader
- 使用或编写高效的Shader,减少不必要的计算,同时利用Shader特性提升视觉效果。
6、使用Mesh LOD(Level of Detail)
- 通过设置不同的细节级别,根据物体与摄像机的距离动态调整渲染的复杂度,以提升性能和视觉效果。
7、调整URP资产设置
在URP资产(UniversalRP)中,可以调整各种渲染设置,如阴影距离、阴影质量、抗锯齿类型等,根据项目需求进行优化。
- 打开URP资产文件:在项目的Assets目录中找到URP资产文件(通常是一个有URP图标的.asset文件),双击打开它。
- 调整渲染设置:
Quality(质量):可以设置渲染缩放比例(Render Scale)、HDR、MSAA(多重采样抗锯齿)等。
Lighting(光照):可以设置全局光照模式、环境光源、反射探针更新频率等。
Shadows(阴影):可以调整阴影距离、阴影解析度、阴影类型等。
Post-processing(后处理):可以启用或禁用内置的后处理效果,并进行相应配置。
这里着重说一下Quality(质量)参数对渲染的影响。
使用代码或者手动调整设置调整渲染的缩放比例、调整多重采样抗锯齿(MSAA)的样本数量效果如下:
//内存小于4个G不建议把 Quality参数调为最高
if (SystemInfo.systemMemorySize < 4096)
return;
UniversalRenderPipelineAsset urpAsset = GraphicsSettings.renderPipelineAsset as UniversalRenderPipelineAsset;
//这里将画质调为最高
urpAsset.renderScale = 2.0f;
urpAsset.msaaSampleCount = 8;
调整前:
调整后:
- Post-processing(后处理):可以启用或禁用内置的后处理效果,并进行相应配置
8、使用更高级的渲染特性
- 如反射探针(Reflection Probes)、光照探针(Light Probes)和遮挡剔除(Occlusion Culling)等,合理利用这些特性可以提升渲染效果和性能。
9、性能优化
- 通过Profiler工具分析性能瓶颈,合理优化,确保在提升画面质量的同时,保持良好的运行性能。
五、总结
内置渲染管线(Built-in Render Pipeline):
- 特点:这是Unity最早提供的渲染管线,特点是兼容性好,适用于多种平台和设备。它提供了一套预设的渲染路径(Forward和Deferred),但自定义能力有限。
- 应用场景:适用于对性能要求不是特别高的中小型项目,或者需要兼容旧设备和操作系统的项目。
通用渲染管线(Universal Render Pipeline,URP):
- 特点:URP是一个高度可定制的渲染管线,旨在为移动设备、VR和平台游戏提供优化的性能和可扩展性。它支持快速迭代和开发,同时保持较高的图形质量。
- 应用场景:适用于需要在多平台上运行,且对性能有一定要求的项目,包括移动游戏、VR/AR体验和独立游戏。
高清渲染管线(High Definition Render Pipeline,HDRP):
- 特点:HDRP专为需要高保真图形的项目设计,支持先进的图形技术,如实时光线追踪(Ray Tracing)。它提供了更高级的材质、光照和影响效果,但对硬件要求较高。
- 应用场景:适用于追求极致图形表现的项目,如高端PC和主机游戏、影视预渲染和模拟训练。
Scriptable Render Pipeline(SRP):
- 特点:SRP是一个允许开发者自定义渲染管线的框架。URP和HDRP都是基于SRP构建的。通过SRP,开发者可以根据项目的具体需求,创建专属的渲染管线。
- 应用场景:适用于需要高度定制渲染过程的高级用户和大型项目,允许开发者根据特定需求优化渲染效果和性能。
选择哪种渲染管线,主要取决于项目的需求、目标平台和性能预算。通常,URP是一个平衡性能和图形质量的好选择,而HDRP适用于追求最高图形质量的项目。内置渲染管线则适用于兼容性要求高的项目。如果有特殊需求,也可以考虑使用SRP自定义渲染管线。