打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第六天)

打造高清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 来分析和定位渲染问题。

这里是井队,天高任鸟飞,海阔凭鱼跃,点个关注不迷路,我们下期再见。

相关推荐
u0103055275 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055275 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝7 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055277 天前
Java图像处理实战指南
人工智能·1024程序员节
u0103055277 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552710 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552710 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552711 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节
u01030552712 天前
Java模块化编程实战指南
人工智能·笔记·1024程序员节
u01030552713 天前
使用BufferedReader读取控制台输入
人工智能·1024程序员节