熟悉 Unity HDRP设置以提高性能

HDRP Version 10

了解如何利用高清晰度渲染管道(HDRP)设置,以最大限度地提高性能,并一次实现强大的图形。

 随着Unity 2020 LTS及以后的HDRP版本10的发布,HDRP包继续优先考虑其用户友好的界面,灵活的功能,稳定性和总体性能。但要使HDRP发挥最佳作用,了解所有主要设置、它们如何工作以及它们的作用至关重要。这就是为什么我们从CPU/GPU Profiler捕获,渲染管道调试视图和HDRP的着色器框架的角度来看HDRP是如何运行的。

从图形调试到分析和优化,这个博客解开提示,帮助您使用Custom Pass API或包的其他本地部分为您的项目定制HDRP。

The structure of HDRP UX

在我们开始分析帧之前,重要的是要了解手头的HDRP功能。我们建议观看我们的Unite Now演讲,用HDRP实现游戏的高保真图像,用Unity的高清渲染管道进行光线追踪,以及体积云,镜头光晕和光锚演讲,这些都是HDRP的伟大指南。

从内置渲染管道迁移到HDRP的用户经常发现迁移需要一些调整时间。这是因为:

  • HDRP有一个统一的、基于物理的渲染框架,这意味着它的属性使用真实世界的单位:曝光值用于相机的光敏度,而坎德拉用于光强。我们的Unite Now讲座揭示了如何以基于物理的方式思考,从而在照明场景时获得一致的结果。
  • 在HDRP项目中,您可以控制许多参数,这些参数存在于许多地方。这在一定程度上是因为HDRP具有更多的集成功能,以及更深入的定制功能,可以让美工和工程师微调和优化他们的工作。   

为了熟悉这些HDRP功能,我们将从查看其全局设置开始。

全局设置

对于内置渲染管道,图形设置涵盖了大多数项目图形设置。还有Player设置,其中包含特定目标平台(如Windows、Linux、Mac或Xbox)上下文中的一些通用图形设置。

                                图1:查看全局图形设置可以在HDRP项目中找到。

HDRP项目类似地使用图形和播放器设置,并增加了三组设置,以提供对渲染管道高级默认配置的访问。

  • 在图形设置中,脚本渲染管道(SRP)设置引用默认的高清渲染管道资产。这个高清渲染管道资源包含可以在每个质量级别覆盖的设置。
  • HDRP默认设置选项卡配置:
  • 默认帧设置,默认属性可以覆盖每个相机(包括用于平面反射或反射探头的相机)。在这里你可以决定相机是否默认渲染透明物体。
  • 默认的体积组件,其中包含可以覆盖每个“场景中的相机位置”的属性。例如,你可以定义默认的后期处理效果强度,它可以被覆盖,变成“室外强,室内弱”,为你的场景使用特定的体积。
  • 默认扩散配置文件资产属性,它可以被HDRP默认设置选项卡的卷组件部分中的扩散配置文件覆盖组件覆盖。反过来,这可以被每个“场景中的相机位置”覆盖。目前,扩散配置文件系统也有一个“冗余覆盖层”,但由于我们一直在寻找改进HDRP的用户体验,这个问题的解决方案已经在进行中。
  • 其他“纯全局设置”的属性不能被覆盖。
  • 最后,在HDRP Config包中指定了一些不太可能需要配置的低级设置。这些设置也是“纯全局设置”。改变它们需要重新编译c#程序集和HDRP着色器框架。这就是为什么它们被放置在不同的位置。

质量水平

使用内置渲染管道,您可以在质量设置选项卡中定义许多质量级别。对于每个质量级别,可以指定一些图形设置,例如各向异性纹理使用,以便在低端平台上使用更少的硬件资源。

对于HDRP项目,具体来说,可以为每个质量级别选择覆盖HD渲染管道资产。与内置渲染管道相比,这提供了更多的可配置性,因为HD渲染管道资产存储了几个参数,例如屏幕上方向灯,定时灯和区域灯的最大数量,颜色分级LUT大小,以及光cookie图集大小等。

内置渲染管道项目的质量设置选项卡中的某些属性仅适用于内置渲染管道。在HDRP项目中,这些设置可能会从原始位置消失,并在其他地方作为“替代设置”重新出现。

在内置渲染管道项目中,“质量设置”选项卡控制阴影分辨率属性。然而,在HDRP项目中,HD渲染管道资产的照明>阴影部分控制阴影贴图的分辨率。

                                         图2:HDRP项目在质量设置中有更少的属性。

                                   图3:这是因为许多属性被移动到高清渲染管道资源。

相机和画框设置

为了在HDRP中渲染场景,你需要添加相机,就像在内置渲染管道中一样。HDRP还使用额外的高清附加摄像机数据组件(附加到相同的游戏对象)来存储额外的每个摄像机参数。

事实上,HDRP为每个摄像机提供了更多的自定义参数。有几种物理相机设置,如果你勾选相机的自定义帧设置属性,你可以决定相机如何通过帧设置系统绘制帧。

帧设置系统是相机属性覆盖的堆栈。您可以在HDRP默认设置选项卡中指定帧设置的默认值。最重要的是,每个相机都可以覆盖默认的帧设置。

渲染管道调试窗口的相机面板帮助可视化帧设置覆盖堆栈。

使用相机面板

下面的例子演示了Render Pipeline Debug窗口的Camera面板是如何工作的:

场景中有一个叫做主摄像机的摄像机。主摄像机只绘制静态对象。HDRP默认设置选项卡启用绘制运动矢量,而主摄像机的帧设置覆盖禁用此功能以提高整体性能。

运动矢量覆盖堆栈在默认帧设置的左侧显示覆盖帧设置的状态。见图4,高亮A:

                                   图4:渲染管道调试窗口显示的帧设置覆盖堆栈

此外,“渲染管道调试”窗口在“覆盖框架”设置的左侧显示“消毒框架”设置的状态。清理可确保覆盖框架设置保持一致。看同样的例子,不透明物体运动和透明物体运动在主摄像机的帧设置覆盖中没有被明确禁用。但由于运动矢量被禁用,这些相关功能也会被清理系统关闭,如图4高亮B所示。

Volume system

正如我们在Unite Now演讲中所讨论的,HDRP支持Volume System。与内置渲染管道中的后处理堆栈类似,HDRP卷系统控制后处理。然而,更重要的是,它决定了天空的渲染方式,间接光的强度,以及一些阴影设置,以及其他特征。

简单地说,HDRP体积系统是一个抽象的框架,可以用来改变渲染设置,因为相机在场景中移动。每个Volume属性都有一个硬编码的默认值。要查看这些值,请使用Render Pipeline Debug窗口中的Volume面板。参见图5中最右边的一列,其中镜头畸变的默认强度为0。

                                       图5:渲染管道调试窗口显示的音量覆盖堆栈

这些硬编码的默认属性可以被HDRP默认设置选项卡的Volume Components部分中的属性覆盖。注意,这些属性覆盖同样可以被场景中的Volume覆盖。

相反,相机从场景中的体中选取混合属性值。如果没有,它就从HDRP默认设置选项卡中获取属性值。否则,它会选择硬编码的默认属性值。

如图5所示,Render Pipeline Debug窗口的Volume面板对于可视化当前Volume属性覆盖堆栈非常有用。它在调试时特别有效,因为它显示当前正在使用的Volume属性。

网格和表面

就像在内置渲染管道中一样,要渲染的几何图形通常由场景中的网格渲染器或蒙皮网格渲染器指定。hdrp特定的数据主要存储在材质中,这样他们就可以使用适当的渲染器或着色器图形。

照明

就像在内置渲染管道中一样,HDRP项目为每个光源提供特定于HDRP的数据存储。HD附加光数据组件与常规光组件一起附加。

考虑到有许多灯光设置来自于带有灯光组件的游戏对象以外的地方。这里有几个例子:

  • 间接照明由光探头组、反射探头(附带HD附加反射数据)、平面反射探头和照明设置决定。它也可以通过间接照明控制器音量组件来调节。
  • 体量系统决定天空照明。
  • Volume系统还控制与屏幕空间相关的效果。这些效果就像照明或阴影的来源:屏幕空间反射、屏幕空间折射、屏幕空间全局照明、屏幕空间环境遮挡和接触阴影。
  • 次表面散射也模拟了“表面到表面的照明”。大多数亚表面散射特性由扩散曲线指定,而扩散曲线又由材料决定。同时,您可以利用音量系统来选择扩散配置文件覆盖。

                                            图6:间接照明控制器体积组件

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/145709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年软件安装管家目录最新

软件目录 ①【电脑办公】电脑系统(直接安装)Win7Win8Win10OfficeOffice激活office2003office2007office2010office2013office2016office2019office365office2021wps2021Projectproject2007project2010project2016project2019project2013project2021Visio…

机器学习中的独立和同分布 (IID):假设和影响

一、介绍 在机器学习中,独立和同分布 (IID) 的概念在数据分析、模型训练和评估的各个方面都起着至关重要的作用。IID 假设是确保许多机器学习算法和统计技术的可靠性和有效性的基础。本文探讨了 IID 在机器学习中的重要性、其假设及其对模型开…

Kafka中topic(主题)、broker(代理)、partition(分区)和replication(副本)它们的关系

在Apache Kafka中,有四个重要的概念:topic(主题)、broker(代理)、partition(分区)和replication(副本)。它们的关系如下: Topic(主题&…

leetcode刷题日记:141. Linked List Cycle(环形链表)

这一题是给我们一个链表让我们判断这是否是一个环形链表,我们知道如果一个链表中有环的话这一个链表是没有办法访问到尾的, 假若有如图所示的带环链表: 我们从图示中很容易看出来这一个链表在访问的时候会在里面转圈,我们再来看看…

sklearn 笔记 BallTree/KD Tree

由NearestNeighbors类包装 1 主要使用方法 sklearn.neighbors.BallTree(X, leaf_size40, metricminkowski, **kwargs) X数据集中的点数leaf_size改变 leaf_size 不会影响查询的结果,但可以显著影响查询的速度和构建树所需的内存metric用于距离计算的度量。默认为…

stable diffusion comfyui的api使用教程

一、为什么要使用comfyui的api?对比webui的api,它有什么好处? 1、自带队列 2、支持websocket 3、无需关心插件是否有开放api接口,只要插件在浏览器中可以正常使用,接口就一定可以使用 4、开发人员只需关心绘图流程的搭建 5、切换…

【数据结构】快速排序算法你会写几种?

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有帮助…

Stable Diffusion 是否使用 GPU?

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 3D数字孪生场景编辑器 Stable Diffusion 已迅速成为最流行的生成式 AI 工具之一,用于通过文本到图像扩散模型创建图像。但是,它需…

Linux基本指令及周边(第一弹)

文章目录 前言mkdir指令(重要):tree指令rmdir指令 && rm 指令(重要):touch指令ls指令pwd指令cd 指令用户家目录man指令(重要):mv指令(重要)cat指令绝…

vue2+elementUI 仿照SPC开发CPK分析工具

源码地址请访问 Vue CPK分析工具页面设计源码(支持左右可拖拽和表格可编辑、复制粘贴)仿照SPC开发-CSDN博客

序列化、反序列化和反射会破坏单例模式

反射和序列化操作都可能破坏单例模式的实现。 使用反射可以访问类的私有构造函数并强制创建一个新的实例,这将破坏单例模式的唯一性原则,因为它允许创建多个实例。为防止这种情况发生,可以通过在单例类的构造函数中添加防止多次实例化的检查…

Python---列表 集合 字典 推导式(本文以 字典 为主)

推导式: 推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规律的列表或控制一个有规律列表)的结构体。 共有三种推导:列表…

TDengine 跨版本迁移实战

TDengine 3.0 已经退出了近一年,目前已经到了 3.2 版本。很遗憾的是 2.x 和 3.x 之间的数据文件不兼容。 如果向从 2.x 升级到 3.x 只能选择数据迁移的方式。 目前数据迁移有三种方法: 使用官方推荐工具 taosx。使用 taosdump 工具。自己写程序。 迁移…

DevOps系列---【jenkinsfile使用sshpass发送到另一台服务器】

1.首先在宿主机安装sshpass 2.把物理机的sshpass复制到容器中 which sshpass cp $(which sshpass) /usr/local/app/ docker cp sshpass 容器id:/usr/local/bin/sshpass 3.在jenkinsfile中添加 #在stages中添加stage stage(部署TEST服务){steps{sh "sshpass -p root1234 sc…

【Azure 架构师学习笔记】-Azure Storage Account(6)- File Layer

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account(5)- Data Lake layers 前言 上一文介绍了存储帐户的概述,还有container的一些配置,在…

ubuntu云服务器配置SFTP服务

目录 一、安装并运行SSH服务 1,安装ssh服务 2,运行ssh 3,查看ssh运行状态 二、创建SFTP用户并进行用户相关的配置 1,创建SFTP用户 2,限制用户只能使用 SFTP,并禁止 SSH 登录。打开/ect/ssh/sshd_conf…

Android 中字符串空格占位

Android 中字符串空格占位 在布局文件XML中的占位符(分号是占位符的一部分) 普通的英文半角空格   no-breakspace(普通的英文半角空格但不换行) 中文全角空格(一个中文宽度)   en空格(半个中文宽度)   em…

E签宝面试题

文章目录 1.自我介绍2.静态方法和普通方法的区别?3.了解bio/nio/aio吗?4.Spring中创建Bean的方法?4.1 通过Spring XML实现4.2 通过注解实现5.讲讲集合类?6.说说ThreadLocal?7.Redis淘汰策略有哪些?8.说下对JVM的了解?9.详细说下堆区?10.Nacos中有一个服务挂了再调用它会…

ElasticSearch6.8.1 常见错误

1.vm.max_map_count max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 1.1 修改 /etc/sysctl.conf 只添加最后vm值即可,sysctl -p /etc/sysctl.conf net.ipv4.conf.all.accept_redirects0 net.ipv4.tcp_tw_reuse1 n…

ChatGPT被曝测试新功能:学习所有历史聊天,还能重置记忆、“阅后即焚”

丰色 发自 凹非寺 量子位|公众号QbitAI ChatGPT可能要上新一项重大功能了。 那就是记住你之前的聊天内容并不断从中学习(并非单纯保存历史记录),从而了解你的偏好和信息,用于在日后聊天派上用场。 比如你可以给它下达一句“始终…