打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第六天)
- 1.前言回顾
- [2.HDRP配置文件(HDRP Asset)](#2.HDRP配置文件(HDRP Asset))
-
- HDRP配置方法
- HDRP配置文件创建方法
- HDRP配置文件基本属性
-
- Rendering(渲染)
-
- [Color Buffer Format(颜色缓冲区格式)](#Color Buffer Format(颜色缓冲区格式))
- [Lit Shader Mode(光照着色器模式)](#Lit Shader Mode(光照着色器模式))
- [Motion Vectors(运动向量)](#Motion Vectors(运动向量))
- [Runtime Debug Display(运行时调试显示)](#Runtime Debug Display(运行时调试显示))
- [Dithering Cross-fade(抖动交叉淡化)](#Dithering Cross-fade(抖动交叉淡化))
- [Terrain Holes(地形洞)](#Terrain Holes(地形洞))
- [Transparent Backface / Depth Prepass / Depth Postpass(透明背面/深度预通道/深度后通道)](#Transparent Backface / Depth Prepass / Depth Postpass(透明背面/深度预通道/深度后通道))
- [Custom Pass(自定义通道)](#Custom Pass(自定义通道))
- [Custom Buffer Format(自定义缓冲区格式)](#Custom Buffer Format(自定义缓冲区格式))
- [Realtime Raytracing(实时光线追踪)](#Realtime Raytracing(实时光线追踪))
- [Lod Bias(LOD 偏差) & Maximum Lod Level(最大LOD级别)](#Lod Bias(LOD 偏差) & Maximum Lod Level(最大LOD级别))
- Decals(贴花)
-
- Enable(启用)
- [Draw Distance(绘制距离)](#Draw Distance(绘制距离))
- [Atlas Width / Atlas Height(图集宽度/高度)](#Atlas Width / Atlas Height(图集宽度/高度))
- [Metal and Ambient Occlusion Properties(金属和环境光遮蔽属性)](#Metal and Ambient Occlusion Properties(金属和环境光遮蔽属性))
- [Maximum Decals on Screen(屏幕上最大贴花数量)](#Maximum Decals on Screen(屏幕上最大贴花数量))
- [Dynamic Resolution(动态分辨率)](#Dynamic Resolution(动态分辨率))
-
- Enable(启用)
- [Dynamic Resolution Type(动态分辨率类型)](#Dynamic Resolution Type(动态分辨率类型))
- [Upscale Filter(放大过滤器)](#Upscale Filter(放大过滤器))
- [Minimum / Maximum Screen Percentage(最小/最大屏幕百分比)](#Minimum / Maximum Screen Percentage(最小/最大屏幕百分比))
- [Force Screen Percentage(强制屏幕百分比)](#Force Screen Percentage(强制屏幕百分比))
- [Low Res Transparency(低分辨率透明)](#Low Res Transparency(低分辨率透明))
- 总结与工作流建议
1.前言回顾
可以点击传送门预览。
传送门: 【打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)】.
传送门: 【打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第二天)】.
传送门: 【打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第三天)】.
传送门: 【打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第四天)】.
传送门: 【打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第五天)】.
2.HDRP配置文件(HDRP Asset)
- HDRP的全称是High Definition Render Pipeline(高清渲染管线)。它是基于Scriptable Render Pipeline(简称SRP,中文翻译为"可编程渲染管线")实现的一个模板,目前的目标平台是支持Compute Shader的带独立显卡的台式机和家用游戏机,比如PlayStation4和Xbox One。基本上可以把Unity传统的内置渲染管线理解为一个黑盒子,几乎没有什么手段可以控制它的各个渲染阶段。SRP的出现让这一情况完全改变。你甚至可以用SRP创造自己的渲染管线。也就是说,即使Unity提供的渲染管线无法满足我们的渲染需求,也可以使用SRP自定义渲染管线。
- 当然,SRP的出现也增加了一些额外的设置步骤,这些步骤用于配置你想使用的渲染管线。不过无须担心,设置方法都很简单。下面我们来看一下在各种情况下的设置方法。因为在设置渲染管线时我们要用到ProjectSettings(项目设置)界面,所以先通过菜单Edit→Project Settings...打开项目设置界面。
可以把渲染管线的设置分成以下几种情况。
●使用默认的内置渲染管线
●使用HDRP
●使用URP
HDRP配置方法
如下图所示,Graphics 的Scriptable Render Pipeline Setting 的参数设置了HDRenderPipelineAsset ,说明Unity3d 使用的是HDRP渲染管线,如果为None,则为默认的内置渲染管线。

这个HDRenderPipelineAsset 配置文件 是创建HDRP模板项目时自动创建并关联的,如下图所示,点击可进行查看。

HDRP配置文件创建方法
如果项目不存在,可以在Project 窗口,右击空白,手动创建一个。

HDRP配置文件基本属性

- Rendering(渲染)
- Lighting(光照)
- Lighting Quality Setting(光照质量设置)
- Material(材质)
- Post-processing(后处理)
- Post-processing Quality Setting(后处理质量设置)
- XR(XR相关设置)
注意:可以创建多个不同配置信息的HDRP的位置文件,以便匹配不同的开发平台,通过手动或者代码动态控制。
Rendering(渲染)
首先来看LitShaderMode 下有三种模式,Forward Only,Deferred Only,Both
Forward Only模式 可以提供更多的高级材质,但是相应的性能消耗较大,比如使用的内存通常较大。
Both模式 HDRP会预先生成针对Forward和Deferred两种模式的Lit Shader variants,也就是在运行时针对不同的相机在这两种模式间切换,同样Both模式下内存占用也会更多。

Color Buffer Format(颜色缓冲区格式)
- R11G11B10: 默认值。性能好,蓝色通道精度略低。
- R16G16B16A16: 更高的精度和动态范围,占用更多带宽和内存。
Lit Shader Mode(光照着色器模式)
- Forward Only: 仅正向渲染。透明度处理更简单。
- Deferred Only: 仅延迟渲染。HDRP默认模式,能高效处理大量实时光照。
Motion Vectors(运动向量)
- 控制是否渲染每像素的运动向量数据,为运动模糊和时间性抗锯齿(TAA) 提供必需数据。
Runtime Debug Display(运行时调试显示)
- 启用后,可在游戏运行时通过按键切换不同的渲染调试视图,用于分析和优化。
Dithering Cross-fade(抖动交叉淡化)
- 使用噪声抖动技术在 LOD 级别之间或物体淡入淡出时进行平滑过渡,避免"突然弹出"现象。
Terrain Holes(地形洞)
- 启用对地形工具中"洞"功能的支持,用于在地形上挖洞。
Transparent Backface / Depth Prepass / Depth Postpass(透明背面/深度预通道/深度后通道)
- 这些是用于修正透明物体排序和渲染问题的技术开关。
Backface: 渲染透明物体的背面,可用于改善折射效果。
Depth Prepass/Postpass: 为透明物体执行额外的深度通道,以解决复杂的深度交互问题(如透明物体间的交错)。通常保持默认即可,除非遇到特定渲染问题。
Custom Pass(自定义通道)
- 启用自定义渲染通道功能,允许你在HDRP的特定阶段注入自定义的着色器代码,实现全屏特效、物体轮廓等。
Custom Buffer Format(自定义缓冲区格式)
- 定义自定义通道所使用的渲染纹理格式。
Realtime Raytracing(实时光线追踪)
- 总开关,用于启用或禁用项目中的所有实时光线追踪效果(如RTGI、RTR、RTAO等)。需要硬件和支持的显卡驱动。
Lod Bias(LOD 偏差) & Maximum Lod Level(最大LOD级别)
-
Lod Bias: 全局调整所有物体的 LOD 切换距离。正值会使引擎更早地使用低细节模型(更节省性能),负值会使引擎更晚切换(更保真)。
-
Maximum Lod Level: 强制所有物体使用的最大LOD级别。设置为 0 表示所有物体都使用最高细节的 LOD0;设置为 1 则表示最多只能使用 LOD1,即使距离再远也不会使用 LOD2 等更低级别。这是强有力的性能控制选项。
Decals(贴花)
- 贴花是投射到场景表面(如弹孔、血迹、涂鸦)的纹理。
Enable(启用)
- 全局启用或禁用贴花系统。
Draw Distance(绘制距离)
- 贴花能够被渲染的最大距离。超过此距离的贴花将不可见。
Atlas Width / Atlas Height(图集宽度/高度)
- DRP 使用虚拟图集来高效管理多个贴花。这些属性定义了该虚拟图集的分辨率。分辨率越高,能同时显示的高清贴花越多,但内存占用也越大。
Metal and Ambient Occlusion Properties(金属和环境光遮蔽属性)
-
控制贴花如何影响底层材质的金属度和环境光遮蔽通道。
-
选项: 如 Scale and Bias 等,用于微调贴花与表面材质属性的混合方式。
Maximum Decals on Screen(屏幕上最大贴花数量)
- 限制同一帧内能够出现在屏幕上的最大贴花数量。这是关键的性能保护措施,防止因玩家瞬间制造大量贴花而导致性能崩溃。
Dynamic Resolution(动态分辨率)
- 该功能动态调整渲染分辨率以维持目标帧率。
Enable(启用)
- 全局启用动态分辨率功能。
Dynamic Resolution Type(动态分辨率类型)
- 选项:
Software: 通过脚本或 HDRP 的 API 动态控制。
Hardware: 使用显卡硬件特性(如 DLSS、FSR、TAAU),通常效果更好且性能开销更低。
Upscale Filter(放大过滤器)
-
选择将低分辨率图像放大到屏幕分辨率时使用的算法。
-
选项:
Bilinear: 最基础、最快的算法,质量一般。
Catmull-Rom: 锐利的双三次滤波,质量较好。
Contrast Adaptive Sharpening (CAS): 推荐,在放大时能很好地保持细节和锐度。
Temporal Anti-aliasing (TAAU): 使用时间累积的高质量放大。
Minimum / Maximum Screen Percentage(最小/最大屏幕百分比)
-
定义动态分辨率可以缩放的范围。
-
示例: 最小 50%,最大 100%。意味着渲染分辨率最低会降到屏幕长宽的 50%(即总像素数的 25%),最高为原生分辨率。
Force Screen Percentage(强制屏幕百分比)
- 在编辑器中用于覆盖并测试特定分辨率缩放比例下的效果,而无需依赖动态调整逻辑。
Low Res Transparency(低分辨率透明)
Enable(启用)
-
启用后,半透明物体将被渲染在一个降低分辨率的缓冲区中,然后再上采样到屏幕分辨率。
-
目的: 这是一个纯粹的性能优化选项,可以显著降低渲染复杂半透明物体(如粒子特效、烟雾)的开销。
-
代价: 可能会导致透明物体的边缘出现一些模糊或失真。适用于对性能要求极高,且能接受透明物体质量轻微下降的移动平台或大型战斗场景。
总结与工作流建议
-
性能瓶颈在GPU
尝试启用 Dynamic Resolution,并设置合理的 Min/Max Screen Percentage。
考虑启用 Low Res Transparency 来处理昂贵的粒子特效。
调整 Lod Bias 和 Maximum Lod Level,让物体更早使用低模。
-
性能瓶颈在CPU(Draw Call)
确保使用 Deferred Only 模式来处理大量光源。
设置 Maximum Decals on Screen 以防止贴花泛滥。
-
追求极致画质
使用 R16G16B16A16 颜色格式。
禁用 Low Res Transparency。
使用高质量的 Upscale Filter(如 DLSS/FSR 的质量模式)。
将 Lod Bias 设为负值,并提高 Maximum Lod Level。
-
开发调试
启用 Runtime Debug Display 来分析和定位渲染问题。
这里是井队,天高任鸟飞,海阔凭鱼跃,点个关注不迷路,我们下期再见。