当前位置: 首页 > news >正文

Unity后处理(Post-processing)

Unity post-processing 就像是对图片采用滤镜一样(如下图对比)对当前场景显示做一定的显示处理,使得场景更漂亮、有趣或者有型。

视觉风格与视觉保真

游戏场景后处理能够达到所需的视觉风格(visual style)同时也保证视觉保真(visual fidelity)。下面是两种视觉风格:黑色的未来风格 vs 光亮的卡通风格

下面两图是后处理前后的视觉保真对比:

项目练习

打开项目

1.下载附件项目,在unity中打开项目,在CreativeCore_Postprocessing>Scenes 文件夹中打开 TutorialScene_PostProcessing 场景,然后点击屏幕正中间上方的 play (三角形图案)按键,然后操作 WASD 按键,在场景中漫游,熟悉该场景。

2. 选择 Hirarchy 窗口中的MainCamera,在右侧的 Inspector中,点击 Rendering 属性,找到 Post Processing,点击边上的空格,然后自动展开了Post Processing的设置:

Global Volume

3. 要进行后处理,需要在场景中添加 Volume 来定义场景中需要后处理的区域。Volume 分为全局(Global Volume)和部分(Local Volume)。先尝试使用 Global Volume,在Hirarchy 窗口中点击鼠标右键,在弹出的菜单中找到 Volume > Global Volume, 点击添加 Global Volume

4. 在 Hirarchy 窗口中选择新建的 Global Volume,然后在右侧的 Inspector 窗口中找到 Profile 属性,点击右边的选择图标,在弹出的 Select Volume Profile 窗口选择不同的Profile,可以看到场景中的视觉风格变化

下图是选择了 PostProcessingProfile_Sample profile 的前后对比:

  •         在上方的角落里红色和浅蓝色的箱子散发了光芒;
  •         场景整体显得暗淡,影子也显著了

可以点击 Play 按键,再次在场景中漫游,查看场景中的视觉变化。

5. 选择了Profile后,在下方显示了 Bloom, Chromatic Aberration, Color Adjustments, Tonemapping, Lift Gamma Gain 共5种后处理效果参数设置。可以自己修改各个参数设置,看看场景中的后处理效果。

具体的后处理效果可以参看unity文档(Effect List | Universal RP | 7.1.8)

Bloom: 创建从图像中明亮区域边缘延伸的光条纹,产生光晕效果;

Chromatic Aberration: 色差会在图像的明暗部分之间产生色边。它模仿真实相机镜头无法将所有颜色汇聚到同一点时产生的色彩失真。

Color Adjustments: 使用此效果来调整最终渲染图像的整体色调、亮度和对比度。

Tonemapping: 色调映射是将图像的 HDR 值重新映射到新值范围的过程。其最常见的目的是使动态范围较低的图像看起来具有较高的范围,具有如下3个模式:

        •:如果不想应用色调映射,请使用此选项。
        •中性:如果只希望对色调和饱和度的影响最小,请使用此选项。这通常是进行广泛颜色分级的良好起点。
        • ACES:使用此选项可应用参考 ACES 色调映射器的近似值,以获得更具电影感的外观。它比中性对比度更高,并且会影响实际色调和饱和度。如果您使用此色调映射器,Unity 将在 ACES 颜色空间中执行所有分级操作,以获得最佳精度和结果。

Lift Gamma Gain: 执行三向颜色分级,调整轨迹球下方的滑块以抵消该范围的颜色亮度。

财产描述
Lift使用它来控制暗色调。这会使阴影产生更夸张的效果。
• 使用轨迹球选择 URP 应将暗色调的色调转换为哪种颜色。
• 使用滑块来抵消轨迹球颜色的亮度。
Gamma使用它来通过幂函数控制中间色调。
• 使用轨迹球选择 URP 应使用哪种颜色来改变中间色调的色调。
• 使用滑块来偏移轨迹球颜色的亮度。
Gain使用此功能可增强信号并使高光更亮。
• 使用轨迹球选择 URP 用于改变高光色调的颜色。
• 使用滑块偏移轨迹球颜色的亮度。

定制后处理 profile

6. 点击 Profile 属性右边的 New 按键,场景将会恢复原来的设置,新建的profile自动命名为Global Volume,点击编辑框中的名字可以自动在文件夹中高亮显示该文件。选择该文件,更改文件名 “PostProcessing - bright and colorful”

Bloom

7. 选择更名后 PostProcessing - bright and colorful,在右侧 Inspector 窗口中点击 “Add Override" 按键,选择 Post-processing > Bloom

8. 在Bloom参数中激活Threshold 和 Intensity,设置 Intensity值为1.0,可以看到场景中的红色和浅蓝色的盒子散发光晕,绿色盒子后面的光圈更亮了。

Tonemapping

9. 再次点击 Add Override 按键,添加 Post-processing > Tonemapping,激活Mode,分别选择 3 个模式:None, Neutral, ACES, 看看哪个模式更好。

None:

Neutral:

ACES:

这是三个模式的对比:

Color Adjustments

10. 再次点击 Add Override, 添加 Post-processing> Color Adjustments, 有如下5个参数:

如下是一些后处理效果的参数设置

  • 颜色亮丽型

        tonemapping: Neutral

        Color Adjustments:激活contrast 和 saturation,并增加这两个参数的值。

  • 反乌托邦的绿色

         tonemapping: ACES

        Color Adjustments:减小saturation值,color filter 设置为绿色

  • 月夜效果

相关参数设置如下:

Lift Gamma Gain

11. 再次点击 Add Override, 添加 Post-processing> Lift Gamma Gain, 有如下3个参数

Lift :黑暗的色调

Gamma:中色调

Gain:明亮的两点

采用上述图中的设置,可以得到如下的后处理效果。可以尝试不同的值得到不同的效果。

Film Grain

12. 再次点击 Add Override, 添加 Post-processing> File Grain, 将 3 个参数都激活,如下图,得到的效果图中增加了影视颗粒,使得场景看起来显得有点古老。

大家可以尝试增加别的效果,看看每个参数如何影响场景效果。

Local Volume

Local volume 能够在场景中选定的一部分区域进行后处理。这个后处理可以设置在游戏玩家进入选定的区域时,场景变暗,然后在游戏玩家离开该区域时,场景亮度复原,如下视频所示:

local volume

13. 在 Hirarchy 窗口中选择 Cube,即上方右边角落里面的发光盒,然后在右侧Inspectgor窗口中,点击 Add Component按键,在弹出窗口中点击 Volume

14. 在 Volume中设置参数,将Mode中Global改为Local, Blend distance 设置为 10,Profile中点击右边的圆圈,在弹出窗口中选择 PostProcessing Profile_Gritty Sci Fi 后处理设置文件,该后处理设置将提供一个暗黑的未来场景设置。

15. 点击整个窗口正中间上方的 Play 按键,进入游戏模式,操控 WASD 按键,漫游到上述右边角落里面的发光盒,在靠近该发光盒的时候,可以看到周围的环境变暗淡了,再离开该发光盒的时候,可以看到周围的环境恢复了原来的光亮。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JAVA的String类的contains方法,Indexof方法不使用KMP算法
  • 顺丰+美团测开面试经验
  • 2024华为OD机试真题-最小矩阵宽度Python-C卷D卷-200分
  • 【MySQL】表的CRUD{insert 替换 查询 运算符 语句执行顺序 排序 limit 分页 truncate截断表 去重 mysql日志 聚合函数}
  • 集合的并发修改异常 31
  • 编程小白如何成为大神?大学新生的最佳入门攻略
  • RK3568笔记四十九:W25Q64驱动开发(硬件SPI1)
  • “八股文”面试题:是招聘程序员的金科玉律?
  • aaaaaaaaaaaaa
  • Day14-Servlet后端验证码的实现
  • WildCard虚拟卡绑定openAI付款方式
  • 从信息论的角度看微博推荐算法
  • 【网络安全】大小写绕过速率限制
  • FastAPI().post(“/retrieve“)在postman中发送请求和接受响应
  • TypeScript 定义不同的类型(详细示例)
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • CentOS7 安装JDK
  • IDEA 插件开发入门教程
  • JSDuck 与 AngularJS 融合技巧
  • Linux下的乱码问题
  • Rancher如何对接Ceph-RBD块存储
  • tweak 支持第三方库
  • 给github项目添加CI badge
  • 计算机常识 - 收藏集 - 掘金
  • 强力优化Rancher k8s中国区的使用体验
  • 驱动程序原理
  • 思考 CSS 架构
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 硬币翻转问题,区间操作
  • 大数据全解:定义、价值及挑战
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​ssh免密码登录设置及问题总结
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #NOIP 2014#Day.2 T3 解方程
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (02)Hive SQL编译成MapReduce任务的过程
  • (5)STL算法之复制
  • (LeetCode 49)Anagrams
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (zt)最盛行的警世狂言(爆笑)
  • (二十三)Flask之高频面试点
  • (翻译)terry crowley: 写给程序员
  • (七)c52学习之旅-中断
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)UDP基本编程步骤
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • .ai域名是什么后缀?
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器