当前位置: 首页 > news >正文

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

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

  • 1.前言回顾
  • 2.HDRP配置文件(HDRP Asset)
    • HDRP配置方法
    • HDRP配置文件创建方法
    • HDRP配置文件基本属性
      • Rendering(渲染)
        • Color Buffer Format(颜色缓冲区格式)
        • Lit Shader Mode(光照着色器模式)
        • Motion Vectors(运动向量)
        • Runtime Debug Display(运行时调试显示)
        • Dithering Cross-fade(抖动交叉淡化)
        • Terrain Holes(地形洞)
        • Transparent Backface / Depth Prepass / Depth Postpass(透明背面/深度预通道/深度后通道)
        • Custom Pass(自定义通道)
        • Custom Buffer Format(自定义缓冲区格式)
        • Realtime Raytracing(实时光线追踪)
        • Lod Bias(LOD 偏差) & Maximum Lod Level(最大LOD级别)
        • Decals(贴花)
          • Enable(启用)
          • Draw Distance(绘制距离)
          • Atlas Width / Atlas Height(图集宽度/高度)
          • Metal and Ambient Occlusion Properties(金属和环境光遮蔽属性)
          • Maximum Decals on Screen(屏幕上最大贴花数量)
        • Dynamic Resolution(动态分辨率)
          • Enable(启用)
          • Dynamic Resolution Type(动态分辨率类型)
          • Upscale Filter(放大过滤器)
          • Minimum / Maximum Screen Percentage(最小/最大屏幕百分比)
          • Force Screen Percentage(强制屏幕百分比)
        • Low Res Transparency(低分辨率透明)
          • Enable(启用)
  • 总结与工作流建议

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

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

http://www.dtcms.com/a/524153.html

相关文章:

  • 从项目中学习CAN和CANFD报文结构(新手入门)
  • SpreadJS 赋能在线 Excel:协同编辑与精细化权限管控的技术实现
  • RabbitMQ 持久性详解
  • cms网站栏目介绍html免费模板下载
  • 太原网站建设培训班wordpress购买按钮插件
  • 北斗导航 | 接收机自主完好性监测(RAIM)在列车中的应用:原理、现状、挑战与案例
  • 前端Sass完全指南:从入门到精通
  • 网站建设地域名高校网站建设 网站群
  • 破局制造业数据孤岛,大腾智能PDM实现产研协同
  • 小程序文件在线显示(支持word,图片,视频等)
  • 记录自己写项目的第三天,springbot+redis+rabbitma高并发项目
  • Linux下查看系统启动时间、运行时间
  • Linux中子系统注册subsystem_register等函数的实现
  • MFC应用程序,工作线程学习记录
  • 在什么网站做公司人员增减wordpress主题标签
  • 广州新塘网站制作推广网站服务器检测
  • 金仓多模数据库:电子证照系统国产化替代MongoDB的优选方案
  • SQL之键与约束——数据库设计的基石与数据完整性的守护者
  • 百度网站收录查询地址保定网站推广多少钱
  • 移动端网站如何开发一呼百应网
  • Spring Boot集合RabbitMQ
  • 傻瓜式大型网站开发工具金融 网站 源码
  • 精准与安全并重!NHVOC-1 (C) 型便携式 VOCs 分析仪(PID + 催化氧化 - NDIR)深度解析
  • WPF ComboBox 样式
  • paddlenlp 3.x 版本使用uie-m-base报错找不到 static/inference.pdmodel
  • 郑州市有做网站的吗wordpress如何设置点击直接下载
  • 深度学习打卡第TR5周:Transformer实战:文本分类
  • 一个强大的开源OCR工具,基于DeepSeek OCR
  • 【AI工具】Lyra超级元提示词原文分享:颠覆AI交互逻辑的「提问式」优化工具
  • 企业级表单与文件上传统一管理方案