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

打造高清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高清渲染管线(第七天)】.

传送门: 【打造高清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的位置文件,以便匹配不同的开发平台,通过手动或者代码动态控制。

XR(XR相关设置)

Single Pass(单通道)
  • 作用: 这是 VR 渲染路径的核心优化设置。它决定了如何为 VR 头显的左右眼进行渲染。

  • 选项:

    Disabled(禁用): 即 Multi-Pass(多通道) 模式。

  • 工作原理: 引擎会完全渲染两次场景------第一次为左眼,第二次为右眼。这意味着所有的 CPU 工作(如 Culling, Batching)和 GPU 工作(如绘制调用)都会执行两遍。

  • 影响: 性能开销非常大,通常会导致帧率减半。不推荐使用,仅作为兼容性备选方案。

  • Single Pass Instancing(单通道实例化): 默认且强烈推荐的模式。

  • 工作原理: 引擎在一个渲染通道中,使用 GPU 实例化 技术同时绘制左右眼的视图。它将场景物体绘制一次,但告诉 GPU 使用两个不同的摄像机变换(左眼和右眼)来实例化渲染结果。

  • 优势:

    大幅提升 CPU 性能: 因为裁剪、批处理等操作只需执行一次。

    显著降低 GPU 开销: 绘制调用(Draw Calls)数量几乎减半。

  • 要求: 需要着色器支持。HDRP 的 Lit 着色器等内置着色器都已支持此功能。如果你使用自定义着色器,需要确保其兼容 Single Pass Instancing。

  • 总结与建议:

    对于所有 HDRP VR 项目,都应确保此选项设置为 Single Pass Instancing。 这是实现流畅 VR 体验的最重要的单一优化设置。

Occlusion Mesh(遮挡网格)
  • 作用: 启用或禁用使用来自 VR 运行时的 遮挡网格(Occlusion Mesh) 信息。

  • 什么是遮挡网格:

    VR 系统(如 Oculus 或 OpenXR)非常了解用户头显的物理构造和透镜的光学特性。它们可以提供一个简化的、不可见的网格,这个网格精确地代表了用户透过透镜实际能看到的最大视野范围。

    这个网格形状通常不是一个完整的矩形,而是一个类似于"双筒望远镜"视野的圆形或椭圆形。

  • 工作原理:

    启用时: HDRP 会使用这个来自 VR 运行时的网格作为模板。在渲染时,它只会渲染该网格覆盖的像素区域,而不会浪费性能去渲染用户根本看不到的角落(由于透镜畸变,这些角落最终也不会被显示)。

    禁用时: HDRP 会渲染整个渲染目标(一个完整的矩形),包括那些最终会被透镜畸变裁切掉的角落像素。

  • 优势:

    性能提升: 通过减少需要填充的像素数量(这被称为"过度绘制"),可以显著降低 GPU 的片段着色器负载。通常可以节省 10%-20% 的 GPU 时间,这对于维持 VR 的高帧率(90Hz 或更高)至关重要。

  • 潜在问题:

    在极少数情况下,某些特定的后期处理效果可能会与遮挡网格的模板测试产生冲突,导致视觉瑕疵。如果遇到无法解释的渲染问题,可以尝试暂时关闭此选项以排查问题。

总结与建议:

  • 对于所有 VR 项目,应默认启用 Occlusion Mesh,以获得免费的 GPU 性能提升。除非你遇到了明确的、由它引起的渲染错误,否则都应保持开启。

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

相关推荐
奶茶精Gaaa36 分钟前
工具分享--json在线转换工具
学习
天人合一peng1 小时前
unity 通过代码修改button及其名字字体的属性
unity·游戏引擎
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [drivers][I2C]I2C
linux·笔记·学习
盐焗西兰花1 小时前
鸿蒙学习实战之路-Reader Kit自定义字体最佳实践
学习·华为·harmonyos
近津薪荼2 小时前
dfs专题5——(二叉搜索树中第 K 小的元素)
c++·学习·算法·深度优先
敏叔V5873 小时前
AI智能体的工具学习进阶:零样本API理解与调用
人工智能·学习
2501_941864963 小时前
科学方法论破解学习时间堆砌误区
学习
哈__3 小时前
CANN加速3D目标检测推理:点云处理与特征金字塔优化
目标检测·3d·目标跟踪
1024小神4 小时前
SVG标签中path路径参数学习
学习
浅念-4 小时前
C++入门(2)
开发语言·c++·经验分享·笔记·学习