通过前面一小节,我们初步认识了后处理是什么,在Unity中简单的试了试后处理的效果。本节我们来创建一个我们自己的后处理配置文件(post-processing profile)。

一个后处理配置文件包含了一系列为了达到特定视觉效果的后处理效果的配置。后处理配置文件对于项目整体的视觉风格和感觉有着非常大的影响。我们来看一个实际的例子感受一下后处理的威力。

选择一种视觉风格

在添加任何视觉效果到场景前,请先选择一种你想要实现的视觉风格。看看以下几种不同视觉风格类型的例子,尝试解读以下每张图是哪些东西造就了整体美术风格。

例如,对于“老西部片”例子:

  • 整个场景是棕色调
  • 图片有颗粒质感
  • 阴影非常暗,阴影区域内的细节很难看清

老西部片(Old western)

类似于1966年电影《The Good, the Bad, and the Ugly 》

明快色彩(Bright and colorful)

类似于2003年电影《Finding Nemo》

反乌托邦绿(Dystopian green)

类似于1999年电影《The Matrix》

暗黑(Dark and gritty)

类似于2013年电影《Man of Steel》

选择一种美术风格

以上四种风格,请任意选择一种作为你想做出来的效果。如果以上几种风格没有一种符合你的胃口,你也可以尝试自行选择其他类型的风格。

创建一个新的后处理配置文件

1. 在Hierarchy中选中Postprocessing Global Volume物体,在其Inspector面板的Volume组件中,选择New来创建一个新的profile。

这会自动创建并分配一个新的空白profile,重置场景的外观为默认状态。

2.  在Volume组件中,点击profile的名字,在Project窗口中会自动定位并高亮出这个文件。

3. 重命名这个文件,命名方式自定,建议取名为类似“PostProcessing - bright and colorful” 的方式。然后将它移动到有意义的目录中,比如Settings目录。

增加辉光(Bloom)效果

Bloom是什么?

Bloom是后处理效果中最流行的一种,无论我们选择哪种视觉风格,它都可以起到帮助。

在真实世界中,当相机拍摄到一些非常明亮的灯光时,会呈现出一种光源周围出现闪亮的效果。

在Uniyt中,Bloom效果会模拟这种行为,可以传达出光源非常明亮的信息。

添加Bloom到场景中

1. 在Hierarchy中选中Global Volume物体(名字为PostProcessing Global Volume或者是你自定义的名字,后文中统一用Global Volume物体代替)

2. 在其Inspector中的Volume组件里,选择Add Override,然后选择Post-processing  -> Bloom。

“Override”的意思是我们的选择会覆盖(改变)当前场景的渲染方式。选择后,会出现一个新的Bloom组件,下面带有一些属性,这些属性默认是禁用的。

3. 启用Threshold和Intensity属性,然后将Intensity值增加到1.0。我们会看到场景里会有闪光的效果出现,主要是红色的盒子,浅蓝色盒子以及在深蓝色盒子后的亮点处。

我们可以尝试勾选Bloom组件名字旁边的复选框来启用和禁用Bloom效果做对比。

4. 我们可以尝试进一步调整一下Bloom组件的其他属性来对比看看效果。关于Bloom的详细描述,可以参考这里:

Bloom | Universal RP | 7.1.8https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.1/manual/post-processing-bloom.html

应用色调映射(Tonemapping)

色调映射对于让我们的场景在屏幕上看起来达到最佳效果来说,是一个非常重要的特性。要搞清楚色调映射之前,我们先要理解HDR是什么。

关于色调映射,也可以看看这篇文章:

色调映射(Tone Mapping)_沧海一升的博客-CSDN博客色调映射(Tone Mapping),即压缩其动态范围至输出设备的动态范围以下,使高动态范围HDR图像能够适应低动态范围LDR显示器。https://blog.csdn.net/qq_21842097/article/details/121035017

HDR是什么?

HDR是高动态范围(High Dynamic Range)的缩写,如果它被启用,则在场景中会有更宽的亮度值(brightness or luminosity)。

举例来说,在普通的LDR(Low Dynamic Range)情况下,假设我们可能展示出的最大亮度值是1.0。但使用HDR的情况下,我们可以展示出的最大亮度值是1.5(或更高)。

没有HDR的话,高于LDR最大亮度值的时候,显示出来的效果都是一样的(超过最大值1.0)。

实际上,是HDR让Bloom效果生效了,因为HDR能够处理对于普通范围来说的“过于明亮”的光。

显示HDR的问题

尽管我们能够将我们场景中的一个物体的亮度调成和太阳一样明亮,但有个问题,普通的屏幕根本没有能力显示出这种亮度。

因此,当有限制的屏幕硬件尝试去呈现出非常明亮的物体时,它会到达屏幕亮度的物理极限,整块区域会变得发白,将其中的细节全部都丢掉了。

这看起来并不理想,并且它也并非是我们在真实生活中所感知的样子。这时我们就需要色调映射了。

什么是色调映射

色调映射将哪些极端的亮度值重新映射到了一个较低的值,这样会让原本被丢失的细节恢复出来。

我们可以从上面的对比图看出色调映射恢复了多少细节。

如果以上的所有东西对你来说有点混乱,没关系。最重要的事情是我们要知道,如果我们正在使用HDR,特别是如果正在使用Bloom的话,我们要应用色调映射来确保超级明亮的地方看起来仍然还OK。

将Tonemapping添加到场景中

1. 在Hierarchy中选中Global Volume物体。

2. 在Volume组件的底部,选择Add Override,然后选择Post-Processing -> Tonemapping(也可以在选择Add Override之后, 通过搜索框搜索)。

3. 在新建的Tonemapping组件中,启用Mode属性,在下拉框中选择Neutral或ACES(觉得哪种好看就选哪种)。

Neutral和ACES(Academy Color Encoding System)只是两种不同的执行色调映射操作的方法,它们的效果略有不同。我们可以从场景中的红色盒子的效果看出,ACES在本场景中效果更佳。

我们来看一个简化版的Neutra

l和ACES效果对比图。

做一些校色处理(Color Grading)

什么是校色(Color Grading)?

校色是为了达成一种视觉效果,调整场景里的颜色的过程,对于项目的整体视觉感知有重大影响。

根据环境中的颜色的亮度和范围不同,我们的项目可以传达出恐怖、科幻、艺术或儿童向的氛围。

在传媒行业中,有一些专职人员(比如调色师),他们的全部工作就是校色。接下来我们所接触的只是这个非常复杂的艺术和科学的毛皮,但我们可以从中学到Unity中这项工作大概会如何进行。

添加Color Grading到场景中

1. 在Volume组件中,添加Color Adjustments模块。关于这个模块的详细说明,可以参考这里:

https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.1/manual/Post-Processing-Color-Adjustments.html#:~:text=To%20add%20Color%20Adjustments%20to,any%20Camera%20this%20Volume%20affects.

2. 使用Color Adjustments属性,尝试调整到你想要实现的效果。

以下是一些小的指导,可能会起到点帮助。

        Bright and colorful

  • 增加对比度(contrast)和饱和度(saturation)
  • Neutrual色调映射

        Old western

  • 增加曝光(exposure)
  • 减少对比(contrast)和饱和度(saturation)
  • 增加一个黄色滤镜(yellow color filter)
  • Neutral色调映射

        Dystopian green

  • 降低饱和度(saturation)
  • 增加一个绿色滤镜(green color filter)
  • ACES色调映射
  • 增加Bloom

        Dark and gritty

  • 增加对比度(contrast)
  • 增加一个蓝色滤镜(blue color filter)
  • ACES色调映射

3. 在Volume组件中,增加Lift,Gamma,Gain模块,然后通过它们下方的复选框启用它们。

这个东西叫做三向颜色校准器(three-way color corrector):

  • Lift - 场景中的暗色调
  • Gamma - 中间色调
  • Gain - 明亮高光

4. 尝试调整一下每个滑动条看看效果。

在上面的例子中,Lift(暗色调)被降低,使得阴影更加黑暗和戏剧化,Gamma被提高,因此画面不会太暗。

大部分情况下,基本的Color Adjustments已经足够了,但如果我们想要精确地呈现出脑海中的样子,三向颜色校准会非常有用。

如果可以,你还可以尝试一下其它和颜色相关的效果,比如:

white balance

White Balance | Universal RP | 7.1.8https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.1/manual/Post-Processing-White-Balance.html        split toning

Split Toning | Universal RP | 7.1.8https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.1/manual/Post-Processing-Split-Toning.html        color curves

Color Curves | Universal RP | 7.1.8https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.1/manual/Post-Processing-Color-Curves.html

尝试看看其他的后处理效果

接下来我们来看看另外一些比较有用的效果,完整的列表和说明,请参考官方文档:

Effect List | Universal RP | 7.1.8https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.1/manual/EffectList.html

景深(Depth of Field)

Depth of Field会让特定距离的物体保持清晰,更远或更近的物体模糊。这个效果对性能影响较大,需要谨慎使用。

胶片颗粒(Film Grain)

胶片颗粒模仿了老电影中看到的颗粒感。这个效果能够让画面看起来有年代感。

渐晕(晕映,Vignette)

渐晕效果模拟出了真实镜头下图像外边界的晕影效果。这个效果也可以用来让某个东西看起来比较古老,或者让观看者目光聚焦在屏幕中央。

还有其他一些效果比如Lens Distortion(透镜畸变),Motion Blur(运动模糊),Chromatic Abberation(色差)等。感兴趣的都可以去试试看。

Unity 后处理(Post-Processing) -- (2)创建后处理配置文件相关推荐

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

    Unity 之 Post Processing后处理不同项目配置(URP项目配置) 一,Post Processing介绍 二,正常项目配置 2.1 场景配置 2.2 集成步骤小结 三,URP项目配置 ...

  2. 后处理安装_分享UG后处理出Excel程序单的方法

     提示:点击上方"NX网"↑ 免费订阅 关注老叶 目前有很多外挂出程序单,但是总感觉少了些什么,比如模板不是自己想要的,NX版本的更新,也是需要等待原作者的更新,我也购买了正版的外 ...

  3. worknc的后处理如何安装_UG NX后处理安装方法(新手入门)

    大家好,我是星辉.每天分享UG知识.实用技巧.需要学习资料的可以聊天发送"学习资料" 今天教你如何把下载的UG后处理安装到UG软件上使用,首先我们下载得到UG后处理. 通常有三种格 ...

  4. Unity 3D为策略游戏创建地图学习教程

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:30节课(7h 42m) |大小:5 GB 含项目文 ...

  5. [Apple开发者帐户帮助]八、管理档案(2)创建临时配置文件(iOS,tvOS,watchOS)...

    创建临时配置文件以在设备上运行您的应用程序而无需Xcode.在开始之前,您需要一个App ID,一个分发证书和多个注册设备. 有关完整的临时配置文件工作流程,请转到Xcode帮助中的分发到已注册设备( ...

  6. idea 创建 spring 配置文件

    搭建基于 spring 框架工程, 按照基于 xml 文件配置当然少不了 spring配置, 记录使用 idea 创建spring 配置文件过程 1.创建 springMVC.xml 配置文件 方式一 ...

  7. 手把手带你 Unity 入门之从零创建一个时钟(GameObjects 与 Scripts)

    目录 写作背景 要点提要 1.创建一个时钟 1.1 创建一个 Game Object 1.2 创建钟盘 1.3 创建时钟的其他部分 1.4 创建指针 2.让时钟动起来 2.1 定义组件类型 2.2 拿 ...

  8. 仿联想商城laravel实战---6、自建配置文件和缓存(如何读取自己创建的配置文件的信息)...

    仿联想商城laravel实战---6.自建配置文件和缓存(如何读取自己创建的配置文件的信息) 一.总结 一句话总结: config()及相应的方法 1.前端插件选择好了,后端开发超级省力? 比如多图上 ...

  9. ug后处理安装步骤是什么?ug后处理怎么添加?ug后处理文件位置路径?ug10后处理安装步骤?

    UG安装后处理概述 使用UG加工编程的朋友,经常会遇到定制后处理问题,由于定制NC后处理繁琐,所以经常会把先前定制好的后处理添加或者替换来使用,那么如何正确的操作呢? 下面以UG10.0为例来说明,其 ...

最新文章

  1. 点滴积累【JS】---JS小功能(setInterval实现图片效果显示时间)
  2. golang goland报错错误 $GOPATH/go.mod exists but should not 解决方法
  3. 网络中的七层协议与TCP/IP五层模型
  4. linux基础命令篇一
  5. 鸿蒙系统海外名称,新商标表明华为鸿蒙系统在海外或叫做“Harmony OS”
  6. 多阶段决策求最优解----动态规划(Dynamic Programming)
  7. Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_汇总贴
  8. 无法卸载和重装photoshop CS3 的解决办法
  9. 华为_ensp_vlan接口模式
  10. 吉他音阶训练入门教程——问题解答(一)
  11. 基于SSM的JSP MYSQL汽车租赁系统的汽车出租管理系统-mysqljava汽车出租管理系统租车管理系统
  12. Microsoft.Office.Interop.Word引用- 无法嵌入互操作类型
  13. android 远距离识别,远距离 人脸识别!
  14. 奢侈手机的自我修养:VERTU纬图20周年再发新机
  15. 模仿QQ的左右滑动切换界面和下拉更新的效果
  16. Win10系统通用串行总线(USB驱动损坏)的一种解决方法
  17. (二-1)多码之间的进制转换【计算机组成原理】
  18. PWM脉宽调制信号转直流电压电流模拟信号输出隔离变送器5v10v4-20ma
  19. KV260(一)运行AI Box
  20. 以太网网络协议Ethernet II 帧分析

热门文章

  1. 聚簇索引和非聚簇索引
  2. AWS EC2 实例Stop、Terminate、Hibernate的区别
  3. vue的style标签里面设置变量
  4. java 日历签到功能_自定义Calendar实现签到功能
  5. 穿山甲和广点通激励视频广告打开失败的异常处理
  6. c# 序列化 简单试验 soap
  7. “更新并关机”但是并没有关机而是重启
  8. 破解手机的任意收费游戏
  9. keil的那些小操作之browse information 不能跳转
  10. Java 修饰符 public/private/protected/不写的区别