熟悉 Unity HDRP设置以提高性能

news2024/11/27 16:36:33

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.coloradmin.cn/o/1216524.html

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

相关文章

锐捷软件开机自启动

http://t.csdnimg.cn/h6k9R win键搜索任务计划程序 打开,在windows创建任务:

【LeetCode刷题-滑动窗口】--424.替换后的最长重复字符

424.替换后的最长重复字符 方法:滑动窗口 右边界先移动找到一个满足题意的可以替换k个字符以后,所有字符都变成一样的当前看来最小的子串,直到右边界纳入一个字符以后,不能满足的时候停下然后考虑左边界右移,左边界只…

使用git上传代码至gitee入门(1)

文章目录 一、gitee注册新建仓库 二、git的下载三、git的简单使用(push、pull)1、将本地文件推送至gitee初始化配置用户名及邮箱将本地文件提交至gitee补充 2、将远程仓库文件拉取至本地直接拉拉至其他本地文件夹 一、gitee 注册 官网:http…

K8S篇之实现利用Prometheus监控pod的实时数据指标

一、监控部署 1、将k8s集群中kube-state-metrics指标进行收集,服务进行部署 1.1 pod性能指标(k8s集群组件自动集成) k8s组件本身提供组件自身运行的监控指标以及容器相关的监控指标。通过cAdvisor 是一个开源的分析容器资源使用率和性能特性的…

win11无法打开文件资源管理器

不知道为啥,升级之后文件夹就打不开了,研究了n个方案 注意:先备份一下注册表,祸祸完失败之后恢复回去 最终方案 很悲剧,下面的我都失败了,不过其他人有成功的,所以,我放弃官方的文件…

matlab如何实现任意长序列所有排列方式

最近被问到一个问题,如何计算一个由3个0和3个1组成的序列的所有组合情况,处理这个问题我没有找到特别恰当的函数(如果有能直接做的函数欢迎评论告知),所以采用比较接近需求的perms函数来解决这个问题 首先看perms函数…

【人工智能】本地运行开源项目MMSegmentation引发的问题

文章目录 ❌AssertionError: Torch not compiled with CUDA enabled问题描述问题分析解决方案总结参考文献 ❌AssertionError: Torch not compiled with CUDA enabled 问题描述 python demo/image_demo.py demo/demo.png configs/pspnet/pspnet_r50-d8_4xb2-40k_cityscapes-5…

Sonar生成PDF错误Can‘t get Compute Engine task status.Retry..... HTTP error: 401

报错及修改: 报错:INFO: Can’t get Compute Engine task status.Retry… org.sonarqube.ws.connectors.ConnectionException: HTTP error: 401, msg: , query: org.apache.commons.httpclient.methods.GetMethod7a021f49 ERROR: Problem generating PD…

车联网解决方案(车联网设备安装部署案例)

车联网(Connected Car)是指通过无线通信技术将汽车与互联网连接起来,实现车辆与车辆之间、车辆与道路基础设施之间以及车辆与互联网之间的信息交流和实时控制。车载网关是车联网系统中的核心设备之一,负责将车辆内部的数据传输到云…

java实现钉钉机器人消息推送

项目开发中需要用到钉钉机器人发送任务状态,本来想单独做一个功能就好,但是想着公司用到钉钉机器人发送项目挺多的。所以把这个钉钉机器人抽离成一个组件发布到企业maven仓库,这样可以给其他同事用提高工作效率。 1.目录结构 2.用抽象类&…

分享6个超绝的设计素材网站,绝对好用!

设计师平时都去哪里找素材呢?收藏好这6个网站,绝对能解决你80%的素材需求,话不多说,直接上干货。 设计素材 1、菜鸟图库 https://www.sucai999.com/?vNTYxMjky 菜鸟图库是一个非常大的素材库,站内包含设计、办公、自…

前端常用的几种加密方法

文章目录 前端常用的几种加密方法md5 加密(不可逆)base64 位加密(可加密可解密)RSA 加密(公钥加密,私钥解密)AES 加密(需要密钥才能解密)CryptoJS 常用的加密方式--demo ✒️总结 前端常用的几种加密方法 在信息安全越来越受重视的今天,JS 安全一直是前端…

【文件上传】upload-labs 通关

环境准备 靶场upload-labs-env-win-0.1环境windows 靶场描述 靶场攻略 Pass-01 1.上传一句话木马 发现有类型限制 2.上传图片木马 抓包 3.修改后缀 将png修改为php. 成功上传, 4.查找文件地址 5.中国蚁剑连接 6.成功 7.源码分析 function checkFile() {var fi…

计算机组成原理——第一章

早期冯诺依曼机: 现代计算机: 五大部分: 1. 输入设备,是指将外部信息以计算机能读懂的方式输入进来,如键盘,鼠标等 2.输出设备,就是将计算机处理的信息以人所能接受的方式输出出来,比…

【问题解决】蓝牙显示已配对,无法连接,蓝牙设备显示在其他设备中。

最开始,我发现逻辑鼠标无法连接蓝牙了,怎么都不行,重连,重新配对,全不行。于是尝试用逻辑鼠标内的usb接口进行解决,重连成功。 然而,在连接耳机的时候,发现耳机音频同样无法连接&am…

2023数维杯国际赛数学建模竞赛选题建议及D题思路讲解

大家好呀,2023年第九届数维杯国际大学生数学建模挑战赛今天早上开赛啦,在这里先带来初步的选题建议及思路。 目前团队正在写B题和D题完整论文,后续还会持续更新哈,大家三连关注一下防止迷路。 注意,本文只是比较简略…

golang 解析oracle 数据文件头

package mainimport ("encoding/binary""fmt""io""os" ) // Powered by 黄林杰 15658655447 // Usered for parser oracle datafile header block 1 .... // oracle 数据文件头块解析 // KCBlockStruct represents the structure of t…

全链路压测:确保系统稳定性的关键一环

在当今高度数字化的业务环境中,系统的稳定性和性能至关重要。全链路压测作为确保系统在各种负载下依然可靠运行的关键工具,越来越受到企业的关注。本文将深入探讨全链路压测的概念及目的。 一、全链路压测概念 全链路压测是一种模拟真实用户行为、模拟全…

人人商城app禁用

api.map.baidu.com 换成 lbs.map.baidu.com

计算机网络:网络层ARP协议

在实现IP通信时使用了两个地址:IP地址(网络层地址)和MAC地址(数据链路层地址) 问题:已知一个机器(主机或路由器)的IP地址,如何找到相应的MAC地址? 为了解决…