熟悉 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:间接照明控制器体积组件

未完待续

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode_48:旋转图像

题目描述: 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],…

【L2GD】: 无环局部梯度下降

文章链接:Federated Learning of a Mixture of Global and Local Models 发表期刊(会议): ICLR 2021 Conference(机器学习顶会) 往期博客:FLMix: 联邦学习新范式——局部和全局的结合 目录 1.背景介绍2. …

DataCamp在线学习平台

DataCamp(https://www.datacamp.com/blog)是一个在线学习平台,专注于数据科学和分析领域的教育。该平台提供丰富的课程,涵盖了从数据处理到机器学习和深度学习的各个方面。以下是DataCamp的主要特点: 互动学习&#x…

【python】OpenCV—Image Pyramid(8)

文章目录 1 图像金字塔2 拉普拉斯金字塔 1 图像金字塔 高斯金字塔 在 OpenCV 中使用函数 cv2.pyrDown(),实现图像高斯金字塔操作中的向下采样,使用函数 cv2.pyrUp() 实现图像金字塔操作中的向上采样 import cv2img cv2.imread(C://Users/Administrat…

MIB 6.1810实验Xv6 and Unix utilities(2)sleep

难度:easy Implement a user-level sleep program for xv6, along the lines of the UNIX sleep command. Your sleep should pause for a user-specified number of ticks. A tick is a notion of time defined by the xv6 kernel, namely the time between two interrupts f…

数据分析 - 离散概率分布的运用

期望公式 期望的方差 期望的标准差

微服务架构演进

系统架构演变 没有最好的架构,只有最合适的架构;架构发展过程:单体架构》垂直架构》SOA 面向服务架构》微服务架构;推荐看看《淘宝技术这十年》; 单体架构 互联网早期,一般的网站应用流量较小&#xff0…

Hive数据表操作--学习笔记

1,Hive数据表操作 1,建表语句和内外部表 ①创建内部表 create [external] table [if not exists] 表名( 字段名 字段类型 [comment 注释], 字段名 字段类型 [comment 注释], ... ) [row format delimited fields terminated by 指定分隔符];&#xff0…

行内样式、内部样式、外部样式

行内样式: 该元素的所在本行中使用style标记来写样式 内部样式: 在head标签中使用style标记来写样式 外部样式: 在head标签中使用link标记引用外部样式 注意优先级: 行内样式>内部样式>外部样式 代码…

【Java 进阶篇】JQuery 遍历 —— For 循环的奇妙之旅

在前端开发的世界里,遍历是一个常见而重要的操作。它让我们能够浏览并操纵文档中的元素,为用户提供更加丰富和交互性的体验。而在 JQuery 中,遍历的方式多种多样,其中 for 循环是一种简单而灵活的选择。在本篇博客中,我…

【918.环形子数组的最大和】

目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:int maxSubarraySumCircular(vector<int>& nums) {int sum0;for(auto x:nums) sumx;vector<int> f(nums.size());vector<int> g(nums.size…

科研学习|科研软件——SPSS统计的单因素方差分析与单变量方差分析

在spss统计分析中&#xff0c;方差分析在比较均值菜单和一般线性模型菜单中都可以做&#xff0c;单因素方差分析一般称为单因素Anova分析&#xff0c;单变量方差分析一般称为一般线性模型单变量分析。这两种方法既有区别又有联系&#xff0c;在统计学中&#xff0c;这两种分析方…

快速使用vscode写python

1.打开vscode&#xff0c;打开扩展&#xff0c;输入python&#xff0c;点击安装。 2.下载python。官网下载太慢&#xff0c;通过镜像下载。 http://npm.taobao.org/mirrors/python/3.9.0/ 下载python-3.9.0-amd64.exe 3.下载好后安装python&#xff0c;下方的add python to p…

在vue项目里面使用index.ts进行统一导出

目录 一、概述 二、具体实践 2.1创建目录 2.2index.ts文件内容展示 2.2在需要的vue文件里面import 2.3vue全代码 三、实际效果 一、概述 一般我们在做项目的时候会发现vue文件里面没有export default 转而替代的是使用同目录下index.ts进行统一导出 好处&#xff1a;能…

winform+access超市管理信息系统

说明文档 主要技术&#xff1a; 基于C#winform架构和access数据库 功能模块&#xff1a; 登陆和对access数据库的一些简单操作&#xff0c;只适合新手学习看看 运行环境&#xff1a; 运行需vs2013或者以上版本&#xff0c;sql server 2012或者以上版本。附送有运行说明文档。…

科研学习|研究方法——python T检验

一、单样本T检验 目的&#xff1a;检验单样本的均值是否和已知总体的均值相等前提条件&#xff1a; &#xff08;1&#xff09;总体方差未知&#xff0c;否则就可以利用 Z ZZ 检验&#xff08;也叫 U UU 检验&#xff0c;就是正态检验&#xff09;&#xff1b; &#xff08;2&a…

[Mac软件]Adobe XD(Experience Design) v57.1.12.2一个功能强大的原型设计软件

Adobe XD是一个直观、强大的UI/UX开发工具&#xff0c;旨在设计、原型设计、用户之间共享材料&#xff0c;以及通过数字技术设计交互。Adobe XD为您提供开发网站、应用程序、语音界面、游戏界面、电子邮件模板等所需的一切。 无限制地创建 设计各种互动&#xff0c;创建看起来…

Uniapp连接iBeacon设备——实现无线定位与互动体验(理论篇)

目录 前言&#xff1a; 一、什么是iBeacon技术 二、Uniapp连接iBeacon设备的准备工作 硬件设备&#xff1a; 三、Uniapp连接iBeacon设备的实现步骤 创建Uniapp项目&#xff1a; 四、Uniapp连接iBeacon设备的应用场景 室内导航&#xff1a; 五、Uniapp连接iBeacon设备的未来…

Leetcode刷题详解——扫雷游戏

1. 题目链接&#xff1a;529. 扫雷游戏 2. 题目描述&#xff1a; 让我们一起来玩扫雷游戏&#xff01; 给你一个大小为 m x n 二维字符矩阵 board &#xff0c;表示扫雷游戏的盘面&#xff0c;其中&#xff1a; M 代表一个 未挖出的 地雷&#xff0c;E 代表一个 未挖出的 空方…

【53.最大子数组和】

一、题目描述 二、算法原理 三、代码实现 class Solution { public:int maxSubArray(vector<int>& nums) {vector<int> dp(nums.size());dp[0]nums[0];int retdp[0];for(int i1;i<nums.size();i){dp[i]max(dp[i-1]nums[i],nums[i]);retmax(dp[i],ret);}ret…