Unity 之 Post Processing后处理不同项目配置(URP项目配置)

  • 一,Post Processing介绍
  • 二,正常项目配置
    • 2.1 场景配置
    • 2.2 集成步骤小结
  • 三,URP项目配置
    • 3.1 具体配置步骤
    • 3.2 最终实现效果
  • 四,代码控制
    • 4.1 代码获取组件
    • 4.2 代码创建组件

一,Post Processing介绍

后期处理是指在摄影机绘制场景之后但在屏幕上渲染场景之前出现的全屏图像处理效果的通用术语。后期处理可以大大提高产品的视觉效果,只需很少的设置时间。

Post Processing: 官方文档

官方介绍效果展示:

使用后处理的效果:


二,正常项目配置

2.1 场景配置

  1. 下载Post Processing:在菜单栏找到Window -> Package Manager -> Post Processing:

  2. 创建空物体命名为PostProcess,新建并设置Layer:PP;为其添加组件Post-process Volume,添加后勾选Is Global 将其设置为全局。

  3. 点击Porfile后面的New创建一个配置文件:

  4. 添加一个Vignetee边角压暗特效看看效果:

  5. 点选All使用全部效果,并拖拽Instensity值查看效果,此时发现场景中并未发生改变。

  6. 摄像机配置:将主摄像机的Layer也设置为:PP。然后添加Post-process Layer,也将面板上的Layer设置为PP

  7. 在场景中创建了一个Cube,看下效果:


2.2 集成步骤小结

  1. 下载【PostProcessing】插件
  2. 创建空物体,并添加【Post Process Volume】组件,勾选【isGlobal】
  3. 创建【Profile】配置文件,并赋值给2步中Volume组件
  4. 为2步骤中创建的空物体设置Layer层
  5. 选中主摄像机,添加【Post Process Layer】组件,并在组件上选择刚刚创建的层

使用情况:通常我们在Camera上挂上一个Post Process Layer脚本用来控制后期效果。也可以挂载到空物体上,通过设置Trigger设置Camera来对相机起作用。Layer用来管理Post Process Volume


三,URP项目配置

3.1 具体配置步骤

  1. 下载Universal RP 插件:

  2. 创建渲染管线配置文件

  3. 将2步骤创建的配置,设置到Project Setting -> Graphics -> Scriptable Render Pipeline Settings:

  4. 在Hierarchy界面,创建Global Volume:

  5. 设置Volume的Profile,点击右侧的New新创建一个配置文件,并为其赋值

  6. 开启摄像机的Post Processing选项:


3.2 最终实现效果


四,代码控制

4.1 代码获取组件

以获取边角压暗效果组件为例:

using UnityEngine;
using UnityEngine.Rendering.PostProcessing;public class PostProcessingProfile : MonoBehaviour
{    // 后处理的配置容器private PostProcessVolume _volume;// 根据Inspector面板上的组件创建对应类型变量private Vignette _vignette;void Start(){// 获取容器_volume = GetComponent<PostProcessVolume>();// 获取此容器下添加的组件_volume.profile.TryGetSettings(out _vignette);}void Update(){if (Input.GetKeyDown(KeyCode.A)){_vignette.intensity.Override(1);}if (Input.GetKeyDown(KeyCode.S)){_vignette.intensity.Override(0);}}
}

4.2 代码创建组件

使用代码动态创建组件

using System;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;public class PostProcessingProfile : MonoBehaviour
{// 后处理的配置容器private PostProcessVolume _volume;// 根据Inspector面板上的组件创建对应类型变量private Vignette _vignette;private ColorGrading _colorGrading;void Start(){// 创建效果组件 _vignette = ScriptableObject.CreateInstance<Vignette>();_vignette.enabled.Override(true);// 创建组件_colorGrading = ScriptableObject.CreateInstance<ColorGrading>();_colorGrading.enabled.Override(true);// 创建容器// 容器放置层, 容器优先级,  容器的效果列表_volume = PostProcessManager.instance.QuickVolume(gameObject.layer, 1, _vignette, _colorGrading);}void Update(){if (Input.GetKeyDown(KeyCode.A)){_vignette.intensity.Override(1);}if (Input.GetKeyDown(KeyCode.S)){_vignette.intensity.Override(0);}}private void OnDestroy(){// _volume:销毁指定容器, 销毁附加的配置文件, 效果游戏对象RuntimeUtilities.DestroyVolume(_volume, true, true);}
}

Unity 之 Post Processing后处理不同项目配置(URP项目配置)相关推荐

  1. 【Unity后期渲染】Post Processing 后处理插件最全使用说明

    Post-Processing使用手册 近段时间接触使用了Unity的后处理插件Post-Processing. 该插件十分强大,能增强画面真实感,产生发光效果,进行调色等.使用也很简单,调节一下参数 ...

  2. Unity 升级项目到Urp(通用渲染管线)以及画面后处理

    前言: Urp全称为Universal Render Pipeline,即通用渲染管线 在开始学习Urp之前,需要了解一下,什么是Render PipeLine(渲染管线),渲染管线也称为渲染流水线或 ...

  3. 【Unity游戏开发】Android中如何集成Unity3D项目——入门级踩坑

    最近的学习之路真的是波折,先是想学Kotlin,结果赶上了算法比赛,恶补了几天算法,然后回归Kotlin,这周又需要调研一下Unity3D,需要把Unity项目嵌入到我们的Android项目中. 今天 ...

  4. Unity小游戏-惊爆游戏(PC)3D联网大逃杀游戏 项目展示+完整项目源码

    游戏录像 游戏玩法 1.类似吃鸡的小游戏,但是这里没有毒圈,武器只有炸弹,没有枪. 2.游戏开始后所有人的体力会不断下降,当体力下降到0就会死亡. 3.玩家只有吃食物增加体力才能活下去,而食物只能通过 ...

  5. Unity 不同渲染管线添加后处理效果方式

    普通项目使用后处理方式: Window->Package Manager->Post Processing->Instsll添加工程内即可 选择Main Camera->Lay ...

  6. 【Unity游戏开发】Android中如何集成Unity3D项目

    涉及到的IDE Android studio 4.0.2版本 UnityHub 2.4.3版本 Unity 2019.4.14版本 环境配置 Android Studio环境配置 这个相信Androi ...

  7. IDEA配置NodeJS项目遇到问题及解决

    IDEA配置NodeJS项目遇到问题及解决 1. 配置安装NodeJS插件 2. Error: No ESLint configuration found. 3. TypeError: this.Cl ...

  8. 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:吴忠强,东北大学,Datawhale成员 本篇文章虽然是VsCod ...

  9. Cocoapods警告 - CocoaPods没有设置项目的基本配置,因为您的项目已经有自定义配置集

    本文翻译自:Cocoapods Warning - CocoaPods did not set the base configuration of your project because becau ...

最新文章

  1. 设计模式--模板方法模式
  2. 初涉SQL Server性能问题(1/4):服务器概况
  3. SQL语言之DQL语言学习(一) 基础查询
  4. python绘制直角坐标系_小白学 Python 数据分析(16):Matplotlib(一)坐标系
  5. xss_url通关_1-10
  6. CondenserDotNet - 使用 Kestrel 和 Consul 的 API 反向代理库!
  7. CentOS 6快捷安装RabbitMQ教程
  8. datax oracle mysql_从 MySQL 到 Lindorm时序引擎 的数据迁移
  9. Django 基础,创建一个Django,并成功在网页中运行
  10. 国家计算机二级access考试试题,全国计算机二级access试题及答案
  11. ASP.NET Web API 跨域访问(CORS)要注意的地方
  12. php函数 99乘法表,[菜鸟学php] php版自定义函数实现99乘法表
  13. 软件共享文件服务器,服务器共享文件软件
  14. 安全辅助 冰刃 IceSword 1.2 中文版 修正号061022
  15. java自动机字符串匹配_字符串匹配之有限自动机
  16. 用HTML写手机QQ登录界面
  17. 【汽车总线技术】CAN FD与CAN网络共存的解决方案
  18. web3调用智能合约取事件
  19. Verilog的结构化、数据流、行为级描述方式
  20. WPA3 vs WPA2

热门文章

  1. Parameter 'attendance' not found. Available parameters are [param1, attendance, sid, param2]解决方法
  2. 使用USB TTL模块 为STC最小系统板下载程序的步骤
  3. Windows10 背景色设置成绿豆沙色
  4. 中文更改繁体字为简体字
  5. 两性思维的差异与情侣夫妻间争吵
  6. Java,导出Excel表格文件
  7. 广西发现全球唯一融丹霞地貌与喀斯特地貌于一体的奇观,未来必火
  8. android 平板电脑定制,安卓工业平板电脑应用及定制开发
  9. 解读PHP面试-高并发解决方案类考察点
  10. 戴尔服务器装w10系统,手把手告诉你戴尔Dell电脑台式如何重装win10系统!