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

1.前言回顾

可以点击传送门预览。
传送门: 【打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第一天)】.
传送门: 【打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第二天)】.
传送门: 【打造高清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配置文件基本属性

是

  • Rendering(渲染)
  • Lighting(光照)
  • Lighting Quality Setting(光照质量设置)
  • Material(材质)
  • Post-processing(后处理)
  • Post-processing Quality Setting(后处理质量设置)
  • XR(XR相关设置)

注意:可以创建多个不同配置信息的HDRP的位置文件,以便匹配不同的开发平台,通过手动或者代码动态控制。

Lighting Quality Setting(光照质量设置)

在这里插入图片描述

Screen Space Ambient Occlusion (SSAO) - 质量等级参数
  • SSAO 通过在物体的角落和接触点添加阴影来增强深度感。这些参数控制其质量和性能。
Step Count(步进数量)
  • 作用: 对于 SSAO,这通常指在遮蔽计算中每个方向上的采样点数量。更多的步进意味着更多的采样,结果更平滑、更准确,但性能开销也更大。
  • 质量影响: Low < Medium < High(步进数量递增)
Full Resolution(全分辨率)
  • 作用: 启用后,SSAO 将在屏幕的全分辨率下进行计算,质量最高。禁用后,将在半分辨率下计算,然后进行上采样,性能更好但细节可能略有损失。

  • 质量影响: Low 质量通常禁用(半分辨率),High 质量通常启用(全分辨率)。

Maximum Radius In Pixels(最大半径(像素))
  • 作用: 定义计算遮蔽时搜索周围区域的最大半径,以像素为单位。较大的半径会产生更柔和、更大范围的遮蔽效果,但计算成本更高,并可能包含不相关的远处遮蔽信息。

  • 质量影响: 通常 High 质量会使用一个较大的半径来获得更自然的效果。

Direction Count(方向数量)
  • 作用: 控制采样时使用的方向数量。在多个方向上(而不仅仅是周围)进行采样可以获得更真实、各向同性的遮蔽效果。

  • 质量影响: Low < Medium < High(方向数量递增)。例如,Low=3个方向,High=6个方向。

Bilateral Upsample(双边上采样)
  • 作用: 当 SSAO 在半分辨率下计算时,这个选项控制如何将其上采样到全分辨率。

  • 启用: 使用更智能的"双边"滤波器进行上采样,该滤波器会考虑深度和法线信息,有助于保留物体边缘,避免遮蔽效果"渗入"前景物体。质量更好,推荐启用。

  • 禁用: 使用简单的上采样,可能导致边缘模糊和瑕疵。

Contact Shadows(接触阴影) - 质量等级参数
  • Contact Shadows 用于添加极短距离、高精度的细节阴影。
Step Count(步进数量)
  • 作用: 这是 Contact Shadows 最核心的参数。它定义了从摄像机出发,向深度缓冲区进行光线步进(Ray Marching)的次数。

  • 质量影响:
    低步进数(Low): 步进次数少,性能极佳,但阴影容易断裂、不连续,尤其是在斜面上。
    高步进数(High): 步进次数多,光线追踪更精确,产生的阴影更稳定、更完整,但性能开销显著增加。

  • 规律: Low < Medium < High(步进数量递增)

Screen Space Reflection (SSR) - 质量等级参数
  • SSR 为光滑表面提供精确的局部反射,但只能反射屏幕内的物体。
Step Count(步进数量)
  • 作用: 对于 SSR,这定义了每条反射光线在屏幕空间中进行光线步进(Ray Marching)的最大次数。

  • 质量影响:
    低步进数(Low): 光线只能行进较短距离,可能无法找到远处的反射表面,导致反射不完整。性能最好。
    高步进数(High): 光线可以行进更远,能捕获到更完整、更准确的反射,但计算开销非常大。

  • 规律: Low < Medium < High(步进数量递增)

总结与工作流建议

  • 性能优先(如移动端或低配PC):
    SSAO: 使用 Low 预设。禁用 Full Resolution,使用较低的 Step Count 和 Direction Count。
    Contact Shadows: 使用 Low 预设,或完全关闭。Step Count 是主要开销。
    SSR: 使用 Low 预设或完全关闭。Step Count 是主要开销。

  • 平衡质量与性能(主流PC):
    SSAO: 使用 Medium 预设。可以考虑启用 Full Resolution 以获得更清晰的细节。
    Contact Shadows: 使用 Medium 预设,Step Count 足以处理大多数接触情况。
    SSR: 使用 Medium 预设,为光滑表面提供可接受的反射质量。

  • 质量至上(高配PC):
    SSAO: 使用 High 预设。启用 Full Resolution 和 Bilateral Upsample,使用最高的 Step Count 和 Direction Count 以获得最平滑、最准确的环境遮蔽。
    Contact Shadows: 使用 High 预设,确保细节阴影(如头发、碎石)的稳定性和完整性。
    SSR: 使用 High 预设,确保反射(如水面、瓷砖地板)能够清晰地捕捉到远处的物体。

  • 核心规律: 在这三种基于光线步进的后处理效果中,Step Count(步进数量)都是最直接的质量和性能控制杠杆。 调整它最能立竿见影地看到效果变化和帧率影响。

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

### 使用 Unity HDRP 高清渲染管线创建 3D 虚拟世界的实战教程 #### 准备阶段 在开始之前,确保已经安装并配置好支持 HDRPUnity 版本。HDRP 是 High Definition Render Pipeline (高清渲染管线) 的缩写,它提供了高质量的光照效果和材质表现能力[^1]。 为了启用 HDRP 渲染管线,在 `Edit` -> `Project Settings` -> `Graphics` 中找到 Scriptable Render Pipeline Settings 设置项。如果当前设置为 None,则表示正在使用传统渲染管线。通过点击旁边的圆点按钮可以选择已有的 HDRP 资产文件或者新建一个 HDRP 资产文件来完成切换操作[^2]。 #### 场景搭建与资源准备 一旦完成了基础环境设定之后,就可以着手构建具体的场景内容了。这通常包括但不限于地形塑造、模型导入以及光源布置等工作流程: - **地形生成**:利用 Terrain 工具快速建立地面结构,并调整高度图纹理贴合需求。 - **资产引入**:从外部获取所需三维物体(如建筑物、树木等),并通过拖拽方式将其加入到工程目录下再实例化至编辑器视窗当中显示出来。 - **灯光设计**:合理安排不同类型的灯源组合以营造逼真的氛围感;例如太阳光模拟自然界的白昼变化过程等等[^3]。 #### 材质优化技巧分享 针对每种表面属性定义专属物理特性参数集合体即 Shader Graph 或 Standard Surface Inputs ,从而实现更加细腻真实的视觉呈现效果 。具体做法如下所示: ```csharp // 示例代码片段展示自定义着色器逻辑部分 Shader "Custom/HDRenderPipelineExample" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag sampler2D _MainTex; struct appdata_t { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; v2f vert(appdata_t IN) { v2f OUT; OUT.vertex = UnityObjectToClipPos(IN.vertex); OUT.uv = IN.uv; return OUT; } fixed4 frag(v2f i ) : SV_Target { fixed4 col = tex2D(_MainTex, i.uv); return col ; } ENDCG } } } ``` 上述脚本演示了一个简单的基于 HD RP 自定义 shader 编写的例子。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

井队Tell

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值