打造高清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 性能提升。除非你遇到了明确的、由它引起的渲染错误,否则都应保持开启。

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

相关推荐
山河亦问安1 小时前
Spring原理编码学习
java·学习·spring
思成不止于此2 小时前
【C++ 数据结构】二叉搜索树:原理、实现与核心操作全解析
开发语言·数据结构·c++·笔记·学习·搜索二叉树·c++40周年
雨泽‎3 小时前
Unity在URP中开启后处理导致RenderTexture存在背景
unity·游戏引擎·图形渲染
钟屿3 小时前
Back to Basics: Let Denoising Generative Models Denoise 论文阅读学习
论文阅读·人工智能·笔记·学习·计算机视觉
d111111111d3 小时前
SPI通信协议--在STM32中介绍(学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习
断水客4 小时前
如何在手机上搭建Linux学习环境
linux·运维·学习
j***12155 小时前
网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。
爬虫·学习·selenium
✎ ﹏梦醒͜ღ҉繁华落℘6 小时前
freeRTOS学习笔记(十四)--内存
笔记·学习
又是忙碌的一天6 小时前
mysql 学习第二天 SQL语句
sql·学习·mysql
拼好饭和她皆失6 小时前
C#学习入门
开发语言·学习·c#