URP——后期处理特效

2023-11-18

通用渲染管道(URP)包括一个后处理效果的集成实现。如果使用URP,则不需要为后期处理效果安装额外的包。URP与Post Processing Stack v2包不兼容。

URP使用体积框架进行后期处理效果。

下面的图片显示了一个URP场景有没有后期处理的区别。

没有后期处理特效:

有后期处理特效:

注意:URP在OpenGL ES 2.0上不支持后期处理特效。

How to configure post-processing effects in URP

本节描述如何在URP中配置后期处理特效。

Using post-processing in the URP Template Scene

后期处理特效是在URP模板的样本场景中预先配置的。

要查看预配置的效果,在场景中选择后期处理体积。

若要添加额外效果,请向体积添加体积覆盖

若要配置基于位置的后处理效果,请参阅如何使用本地体积

Configuring post-processing in a new URP Scene

在新场景中配置后期处理特效:

  • 选择一个相机,然后选择后期处理复选框。

  • 在场景中添加一个带有Volume组件的GameObject。此指令添加一个全局Volume。选择GameObject > Volume > Global Volume
  • 选择全局Volume游戏对象。在Volume组件中,单击Profile属性右侧的new按钮来创建一个新的Profile。

  • 通过向Volume组件添加Volume Overrides向相机添加后处理效果。

现在,您可以在Volume组件的覆盖中调整后期处理效果设置。

若要配置局部的后期处理效果,请参阅如何使用本地体积

Post-processing in URP for mobile devices

后处理效果会占用很多帧时间。如果你使用URP的移动设备,这些效果是最“移动友好”的默认:

  • Bloom (with High Quality Filtering disabled) Bloom(禁用高质量过滤)
  • Chromatic Aberration 色差
  • Color Grading  颜色分级
  • Lens Distortion 透镜变形
  • Vignette 晕映

注意:对于场的深度,Unity建议你对低端设备使用高斯场的深度。对于控制台和桌面平台,使用散景景深。

注意:对于移动平台上的反锯齿,Unity建议你使用FXAA。

Post-processing in URP for VR

在VR应用程序和游戏中,某些后处理效果可能会导致恶心和迷失方向。为了减少快节奏或高速应用中的晕动病,在VR中使用Vignette效果,避免在VR中出现镜头失真、色差和运动模糊等效果。

Volumes

通用渲染管道(URP)使用了体积框架。根据相机相对于每个体积的位置,体积可以覆盖或扩展场景属性。

URP使用体积框架进行后期处理效果

URP为体积块实现了专门的游戏对象:Global VolumeBox VolumeSphere VolumeConvex Mesh Volume.。

体积组件包含模式属性,该属性定义体积是全局的还是局部的。

当模式设置为全局时,体积会影响场景中相机的所有位置。当模式设置为局部时,如果相机在碰撞器的范围内,则体积会影响相机。有关更多信息,请参见如何使用局部体积

你可以添加一个体积组件到任何游戏对象。一个场景可以包含多个游戏物体与体积组件。你可以在GameObject中添加多个体积组件。

体积组件引用一个体积配置文件,其中包含场景属性。体积配置文件包含每个属性的默认值,并在默认情况下隐藏它们。体积覆盖允许您更改或扩展体积配置文件中的默认属性。

在运行时,URP会经过场景中附加到游戏对象上的所有激活的体积组件,并决定每个体积对最终场景设置的贡献。URP使用摄像机位置和体积组件属性来计算贡献。URP从所有具有非零贡献的卷中插入值来计算最终的属性值。

Volume component properties

体积组件包含控制它们如何影响摄像机以及它们如何与其他体积交互的属性。

Property Description
Mode

Use the drop-down to select the method that URP uses to calculate whether this Volume can affect a Camera:
• Global: Makes the Volume have no boundaries and allow it to affect every Camera in the Scene.
• Local: Allows you to specify boundaries for the Volume so that the Volume only affects Cameras inside the boundaries. Add a Collider to the Volume's GameObject and use that to set the boundaries.

使用下拉菜单选择URP计算此体积是否会影响相机的方法:

•全局:使体积没有边界,并允许它影响场景中的每个摄像机。

•Local:允许您指定体积边界,以便体积只影响边界内的相机。在Volume的GameObject中添加一个碰撞器,并使用它来设置边界。

Blend Distance

The furthest distance from the Volume’s Collider that URP starts blending from. A value of 0 means URP applies this Volume’s overrides immediately upon entry.
This property only appears when you select Local from the Mode drop-down.

URP开始混合时离体碰撞器最远的距离。值0表示URP在进入时立即应用此卷的覆盖。
此属性仅在从模式下拉列表中选择Local时出现。

Weight

The amount of influence the Volume has on the Scene. URP applies this multiplier to the value it calculates using the Camera position and Blend Distance.

体积对场景的影响程度。URP将这个倍增器应用到它使用摄像机位置和混合距离计算的值上。

Priority

URP uses this value to determine which Volume it uses when Volumes have an equal amount of influence on the Scene. URP uses Volumes with higher priorities first.

URP使用这个值来确定当体积对场景有相同的影响时使用哪个体积。URP首先使用具有较高优先级的体积。

Profile

A Volume Profile Asset that contains the Volume Components that store the properties URP uses to handle this Volume.

一个体积配置文件资产,其中包含存储URP用于处理此体积的属性的体积组件。

Volume Profiles

Profile字段存储一个体积配置文件,它是一个包含URP用于渲染场景的属性的资产。您可以编辑此体积配置文件,或者为Profile字段分配不同的体积配置文件。您还可以分别单击New和clone按钮来创建体积配置文件或克隆当前体积配置文件。

How to use Local Volumes

本节介绍如何使用局部体积实现基于位置的后期处理效果。

在这个例子中,当相机在一个特定的Box Collider中,URP应用了一个后期处理效果。

1.在场景中,创建一个新的Box Volume (GameObject > Volume > Box Volume)。

2.在Inspector中选择Box Volume。在Volume组件中,在Profile字段中,单击New。

Unity创建新的体积配置文件,并在体积组件中添加添加覆盖按钮。

3.如果场景中有其他体积,请更改Priority属性的值,以确保该体积的重写具有比其他体积更高的优先级。

4.单击Add Override。在“体积覆盖”对话框中,选择后期处理效果。

5.在Collider组件中,调整大小和中心属性,使Collider占据您希望本地后处理效果所在的体积。

确保选中Is Trigger复选框。

现在,当相机在体积盒碰撞器的范围内时,URP使用体积盒体的覆盖。

Volume Profile

体积配置文件是一个可编写脚本的对象,它包含体积用于确定如何渲染它们所影响的摄像机的场景环境的属性。体积在其概要字段中引用体积概要文件,并使用它引用的体积概要文件中的值。

体积配置文件将其属性组织为控制不同环境设置的结构。这些结构都有您可以使用的默认值,但是您可以使用体积覆盖来覆盖这些值并定制环境设置。

Create and custom a Volume Profile

创建体积配置文件有多种方法。当你创建一个场景设置游戏对象时,Unity会自动创建一个体积配置文件(菜单:Rendering > Scene Settings)。您还可以手动创建体积配置文件。导航到菜单:Assets > Create > Volume Profile

在检查器中打开体积配置文件以编辑其属性。要做到这一点,你可以:

  • 在Assets文件夹中选择体积配置文件。

  • 选择一个具有体积组件的游戏对象,它的体积配置文件在配置文件字段中设置。

当您在检查器中查看体积配置文件时,您只能看到体积配置文件包含的体积覆盖值;体积配置文件隐藏了所有其他值。您必须添加体积覆盖组件,以便编辑体积配置文件的默认属性。

若要添加体积覆盖组件,请单击“Add Override”按钮,并选择要添加到体积配置文件中的体积覆盖。

例如,点击Add Override 按钮并选择Motion Blur(运动模糊)体积覆盖。这暴露了与URP中运动模糊效果相关的属性。

Volume Overrides

体积覆盖允许您更改或扩展体积配置文件中的默认属性。

URP在体积覆盖时实现后期处理效果。例如,下面的图像显示了在URP模板样本中的Vignette后处理效果。

在体积覆盖中,每个属性左侧的复选框允许启用或禁用特定属性。如果禁用某个属性,则URP将为该属性使用卷的默认值。要打开或关闭所有属性,请使用属性列表上方的all或None快捷键。

How to add a Volume Override to a Volume component

要将体积覆盖添加到体积组件:

  1. 选择一个带有体积组件的游戏对象。
  2. 在检查器窗口中,单击添加覆盖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

URP——后期处理特效 的相关文章

  • 【PythonCode】这些题,不会做就选D

    PythonCode 这些题 不会做就选D 前言 在很多高大上的项目中 一个花费很长时间 消耗大量人力物力才查出来的BUG 经常是一个符号错误 一个值传错 一个基本函数的用法没有考虑周到等基本问题 所以基础不牢 地动山摇 真的不是开玩笑 2

随机推荐

  • Qt信号槽自动关联的用法

    Qt除使用connect方法显式的关联信号与槽 还可以通过自动关联机制实现信号与槽函数的连接 自动关联的槽函数命名规则 void on lt 窗口部件名称 gt lt 信号名称 gt lt 信号参数 gt 实现信号与槽函数关联的步骤 1 在
  • Android 安全机制(1)uid 、 gid 与 pid

    1 概述 Android 安全机制来源于Linux 并且以Linux权限管理为基础 要了解Android的安全机制 需要从linux中的安全机制了解开始 而用户的权限管理又是linux安全机制的最基本的一个组成 Android的创新之处是在
  • KVM网卡模式(初探KVM)

    最近在看 KVM虚拟化技术实战与原理解析 这本书 略读了前四章后 开始动手创建并安装一个虚拟机 然后发现一个很严重的问题 就是我没有办法通过ssh连接到虚拟机 linux 也没有办法通过mstsc连到到虚拟机 windows 因为我在创建虚
  • oracle索引监控

    oracle索引是加快查询速度 减少i o操作的 但是如果索引无用的话那他就是浪费资源的 尤其是在做DML操作时 这是 就需要我们查看那些索引是无用的 相关视图 user indexesuser ind columnsv object us
  • java学习03-程序执行三大结构

    一 顺序执行语句 程序运行时 按顺序从上往下执行 二 分支语句 分支运算 if else if 条件 if 条件 else 虽然多个语句块 但是只有一个执行 if 条件 else if 条件 else switch case 不能嵌套 sw
  • 报错Attribute "path" is required and must be specified for element type

    Attribute path is required and must be specified for element type 最近搞一个项目总遇到这个或者类似的问题 其实问题很简单 其实就是batis和MyBatis之间有区别 就是在
  • java8 stream findfirst().get()空指针

    java8 stream findfirst get 空指针 List
  • 【STM32CUBE+IAR+IAP升级】

    STM32CUBE IAR IAP升级 案例应用 利用IAR 串口调试助手对STM32F411VET6进行简单的IAP实现 代码分为两部分 BootLoader APP翻转LED 1 工具 IAR STM32CUBEMX 串口调试助手 IA
  • ResultSet的getDate()、getTime()和getTimestamp()比较

    最近在做一个项目 发现个知识点 记录一下 数据库中存储时间格式为2021 8 11 16 09 28 现在要从ResultSet中取出时间 当然是要包含年月日时分秒的 发现 rs getDate 只是返回日期部分 只精确到天 java sq
  • el-image因src路径问题加载失败

    载入图片目录路径如下 起初 我将路径这样写
  • CDH多租户配置过程中遇到的问题

    多租户是CDH里面非常重要的一部分 从一开始配置KDC到集成KDC 服务使用过程中都有可能会遇到各种各样的问题 下面我举例说下我当时遇过的问题 希望能帮助到大家 服务启动错误 KDC服务配置完成安装完成 CDH集成过程中也没问题 CDH启动
  • WebSocket断开原因分析,再也不怕为什么又断开了

    阅读原文 https wdd js org websocket 1 把错误打印出来 WebSocket断开的原因有很多 最好在WebSocket断开时 将错误打印出来 在线demo地址 https wdd js org websocket
  • 【IP协议(一)】——IP数据报格式及其含义,IP数据报的切分

    个人主页 努力学习的少年 版权 本文由 努力学习的少年 原创 在CSDN首发 需要转载请联系博主 如果文章对你有帮助 欢迎关注 点赞 收藏 一键三连 和订阅专栏哦 IP数据报格式 版本 占4位 指ip协议的版本 首部长度 表示IP数据报中报
  • 短视频矩阵源码

    随着短视频平台的快速发展 越来越多的企业开始关注短视频营销 而矩阵号运营逐渐成为了企业进行短视频营销的常规玩法 那么 矩阵账号如何运作 如何进行短视频矩阵号运营 一 矩阵号怎么搭建 1 选择短视频平台 首先 根据自己企业的特点和目标用户群体
  • 【C语言】结构体

    目录 结构体 结构体类型的声明 结构体的自引用 结构体变量的定义和初始化 结构体内存对齐 计算结构体大小 结构体内存对齐的意义 修改默认对齐数 结构体传参 结构体实现位段 什么是位段 位段的内存分配 位段的应用 结构体 结构体类型的声明 1
  • javascript 字符串判断是否为空

    var a document getElementById notValid if a a为null 或者 或者0 alert javascript 字符串为null 或者是0
  • 安卓Android和Java语言的异同、关系和区别

    安卓Android和Java语言的异同 关系和区别 安卓Android是一种以Linux为基础的开放源码操作系统 主要使用于便携设备 2011年第一季度 安卓在全球的市场份额首次超过塞班系统 跃居全球第一 2012年2月数据 安卓占据全球智
  • Linux Ctrl+ 所有的快捷键

    Ctrl a 光标移到行首 Ctrl b 光标向前移一格 Ctrl c 结束命令 Ctrl d 删除光标所在字符 Ctrl e 光标移到行尾 Ctrl f 光标向后移一格 Ctrl g Ctrl h 删除光标前一格 Ctrl i Ctrl
  • SoC性能指标&ARM内核运算能力

    自动驾驶芯片常用的性能评价指标 TOPS DMIPS GFLOPS分别说的是啥 TOPS Tera Operation Per Second 表示每秒钟可以进行的操作数量 用于衡量自动驾驶的算力 众所周知 汽车上最常用的传感器是摄像头 而与
  • URP——后期处理特效

    通用渲染管道 URP 包括一个后处理效果的集成实现 如果使用URP 则不需要为后期处理效果安装额外的包 URP与Post Processing Stack v2包不兼容 URP使用体积框架进行后期处理效果 下面的图片显示了一个URP场景有没