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

Post-Processing使用手册

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

本文主要参考来源为官方文档 (若有翻译不到位处,欢迎指出)。

Post-Processing 官方文档:https://docs.unity.cn/Packages/com.unity.postprocessing@3.1/manual/index.html

1 插件介绍

后处理 (Post-Processing) 是全屏图像处理效果的通用术语,它发生在摄像机绘制场景之后,但场景在屏幕上呈现之前。后期处理可以大大改善您的产品的视觉效果,只需很少的设置时间。您可以使用后期处理效果来模拟物理相机和胶片的属性。

适用Unity版本:2018.1及以上

Post-Processing是Unity的后处理插件,最早在2017年3月与Github上发布1.0版本,到2.0版本进入Unity的 Asset Store。

Post-Processing的出现让Unity拉近了与Unreal Engine之间的画面差距,目前它已成为Unity渲染环节的重要组成部分,在URP管线中也是直接内置集成了该插件。

官方效果对比图

2 初始设置

第一步,导入插件。点击Window > Package Manager,输入Post Processing,安装导入。我这里使用的是3.1.1版本,目前最新版是3.2.0版本。

image-20220104161036534

第二步,设置渲染层。在场景Camera上Add Component > Rendering > Post-process Layer,只有添加该组件后的相机才会进行后处理效果。

因为可能我们场景会有许多相机,不同相机我们可能希望使用不同的后处理效果,所以我们需要设置相机所在的层。可以新建一个Layer,名字随意,我这里新建一个Post Procesing层。将相机设为此层,并将组件里的Layer也设为此层。

image-20220104212346544

第三步,添加效果器。此时可以设置后处理效果了,可以直接继续在Camera下Add Component > Rendering > Post-process Volume

勾选Is Global,此时效果会全局生效 (即无论相机在何处都会有效果)。然后点击Profile右侧的New可以新建一个预设,之后就可以点Add effect添加各种效果了。

image-20220104214107889

PS:如果我们想只在场景的特定区域应用效果,就不在相机上添加Post-process Volume组件。在场景中创建一个空物体,设置该物体Layer与相机Layer相同,在该物体上添加Post-process Volume组件,Is Global不勾选。再添加Box Collider组件,调整Collider大小。此时相机进入Collider范围内就会有效果,出范围外效果就消失。

image-20220104220221944

3 效果添加

根据需要的效果在Post-process Volume中添加对应的模块,并调节参数。有的模块参数比较多,边调边看效果就好,不清楚再看表格的参数说明。共11种效果,1、2为环境光效果,3、4为图像后处理,5-11为相机镜头效果。这里我以我自己搭建的简易场景进行测试。

image-20220104221010813

Effect

3.1 环境光遮蔽 (Ambient Occlusion)

– 该效果会使光线无法照射到的区域变暗,如折痕、洞、物体与物体间的空隙部分。

包含两种模式,其中Scalable Ambient Obscurance (SAO)效果好但性能开销大,Multi-scale Volumetric Occlusion (MVO)速度快 (适用于移动端)。

SAO参数说明
Intensity调整Ambient Occlusion产生的黑暗程度。
Radius设置采样点的半径,控制暗区的范围。
Quality定义样本点的数量,该参数影响最终效果与游戏性能。
Color设置环境遮挡的色调颜色。
Ambient Only启用此复选框使Ambient Occlusion效果只影响环境照明。此选项仅在Deferred渲染路径和HDR渲染时可用。
MVO参数说明
Intensity调整Ambient Occlusion产生的黑暗程度。
Thickness Modifier修改遮挡的厚度。该参数能增加暗区,但会在物体周围引入暗晕。
Color设置环境遮挡的色调颜色。
Ambient Only启用此复选框使Ambient Occlusion效果只影响环境照明。此选项仅在Deferred渲染路径和HDR渲染时可用。

启用该效果后,看到墙角等物体交接处产生了黑影,真实感加强。

Effect_AO

3.2 环境光反射 (Screen Space Reflections)

– 该效果会创建微妙的反射效果,用以模拟潮湿地板表面或水坑。

反射参数说明
Preset可以从下拉菜单中选择质量预设。使用Custom可以微调质量。
Maximum Iteration Count (Custom preset only)设置射线行进通道的最大步数。值越高,反射越多。
Thickness (Custom preset only)设置射线厚度的值。较低的值可以检测到更小的细节,但会比较消耗资源的。
Resolution (Custom preset only)选择内部缓冲区的大小。选择Downsample性能最好。Supersample较慢,但效果更好。
Maximum March Distance设置在场景中绘制反射的最大距离。
Distance Fade设置接近反射面的反射淡出距离的值。可以用于消去伪影。
Vignette设置反射图像淡出反射物边缘的范围。

添加该效果时,出现黄色警告。根据提示,更改Camera组件的Rendering PathDeferred即可。更改后,发现画面出现锯齿,可以看到Post-process Layer组件中Anti-aliasingMode为No Anti-aliasing,改为其他任意一个即可。

image-20220104224409797

启用该效果后,看到反射率大于0的物体会出现周围物体的反射像,真实感加强。

Effect_SSR

3.3 自动曝光 (Auto Exposure)

– 该效果会动态调整图像的曝光以匹配其中间色调,用以模拟人眼实时调整亮度的变化。

曝光参数说明
Filtering设置直方图中找到稳定平均亮度的上下两个百分比。超出这个范围的值将被丢弃,并且不会对平均亮度有贡献。
Minimum设置最小平均亮度,作为曝光值(EV)的参考。
Maximum设置最大平均亮度,作为曝光值(EV)的参考。
Exposure Compensation设置中灰色值来补偿场景的全局曝光。
适应参数说明
Type选择适配类型。Progressive会进行自动曝光。Fixed不会进行自动曝光。
Speed Up设置从暗到亮的适应速度。
Speed Down设置从亮到暗的适应速度。

一般夜晚环境可能感觉场景偏暗,又不可能打太多太亮的灯,可以考虑使用这个效果给画面整体提亮。

Effect_AE

3.4 颜色滤镜 (Color Grading)

– 该效果可以改变图像的颜色亮度。

全局设置参数说明
Mode选择Color Grading效果模式。
Lookup TextureLDR: 选择一个自定义纹理(条带格式,如256x16)应用于颜色滤镜的其他效果之前。如果没有纹理,则无效果。 External: 一个自定义纹理(色彩空间为log编码).
ContributionLDR: 设置纹理效果的比重。
色调映射参数说明
Mode仅在High Definition Range模式下可用。从下拉菜单中选择色调映射模式。None: 无色调映射。Neutral: 应用范围重映射与最小的影响色彩色调和饱和度。ACES: 应用接近电影色彩的外观 (参考ACES )。这种效果相比Neutral的色调和饱和度有更多的对比度。当启用该调色器时,所有的色彩操作都在ACES颜色空间中进行,能获得最佳的精度和结果。Custom: 一个全参数调色器。这是唯一一个有自设置的调色器。
Toe Strength设置曲线的底部和中部之间的过渡值。值为0没有过渡,值为1为非常硬的过渡。
Toe Length设置曲线底部的长度。值越大,我们图像的较暗的部分会更暗。
Shoulder Strength设置曲线中部和顶部之间的过渡值。值为0没有没有,值为1为非常硬的过渡。
Shoulder Length设置曲线顶部的长度。值越大,我们图像的较亮的部分会更亮。
Shoulder Angle设置曲线顶部与中部过渡的角度值。
Gamma曲线的 gamma 矫正 ,值为1 时不做矫正。
白平衡参数说明
Temperature设置白平衡色温。
Tint设置白平衡补偿 (绿色或洋红色调)。
色调参数说明
Post-exposure仅支持**High Definition Range(HDR)**模式。设置EV单元中场景的整体曝光值。该效果会在HDR效果之后再处理,所以它不会影响前面渲染的结果。
Color Filter选择渲染的色调。
Hue Shift调整所有颜色的色调。
Saturation调整所有颜色的强度。
Brightness仅支持**Low Definition Range (LDR)**模式。调整图像的亮度。
Contrast调整色调值的整体范围。
混合通道参数说明
Channel选择要修改的输出通道(红/绿/蓝)。
Red调整红色通道在整体混合中的影响。
Green调整绿色通道在整体混合中的影响。
Blue调整蓝色通道在整体混合中的影响。
轨道球参数说明
Lift调整暗色调(或阴影)。
Gamma调整中色调。
Gain调整亮色调。

添加该效果时,出现黄色警告。根据提示,需要设置色彩空间。点击Edit > Project Settings > Player,找到Other Settings中Rendering的Color Space,将其改为Linear即可。

image-20220104224144130

这个东西跟PR里面的lumetri挺像的,就是个调色盘,参数非常多,能调出各种不同的效果。

Effect_CG

3.5 发光 (Bloom)

– 该效果会使图像中明亮的区域延伸出光条纹,用以模拟真实世界中相机镜头被光线淹没的效果。

Bloom参数说明
Intensity设置Bloom过滤器的强度。
Threshold设置亮度级别,过滤掉这个级别下的像素。这个值用γ空间表示。
Soft Knee设置在阈值上下界(0 =硬阈值,1 =软阈值)之间的渐变阈值。
Clamp设置限制像素的值来控制Bloom数量。这个值用γ空间表示。
Diffusion设置遮蔽效果的范围(与屏幕分辨率无关)。
Anamorphic Ratio设置比率以垂直(范围[-1,0])或水平(范围[0,1])缩放Bloom。模拟变形透镜的效果。
Color选择Bloom滤镜的色调颜色。
Fast Mode启用此复选框,通过降低Bloom效果质量来提高性能。
Dirtiness参数说明
Texture选择一个肮脏纹理添加污点或灰尘镜头。
Intensity设置镜头的肮脏程度。

这里我们让墙上的海报发光,制作电子屏幕的效果。首先,设置它们的shader设置为一个不受光照影响的shader,我这里设为Unlit/Texture。

image-20220104232219406

发光效果只能加一点点,不能加多喽,让光有一点点晕开的感觉就好。参数拉太高会产生光污染,影响游戏体验,非常难受。

Effect_BL

3.6 色差 (Chromatic Aberration)

– 该效果会分离图像的红绿蓝通道,用以模拟现实世界中相机在光线折射产生的不同波长光分离的效果。

Property说明
Spectral Lut选择用于自定义散射颜色的纹理。当为空时,Unity将使用默认纹理。
Intensity设置Chromatic Aberration效果的强度。
Fast Mode使用一个更快的Chromatic Aberration效果的提高性能。

Effect_CA

3.7 景深 (Depth of Field)

– 该效果会模糊图像的背景,用以模拟真实世界相机镜头的焦距特性,产生对焦效果。

景深参数说明
Focus Distance设置到焦点的距离。
Aperture设置光圈的比例(称为f-stop或f-number)。数值越小,景深越浅。
Focal Length设定镜头和胶卷之间的距离。数值越大,景深越浅。
Max Blur Size从下拉菜单中选择散景滤镜的卷积内核大小。这个设置决定散景的最大半径。它也会影响性能。内核越大,需要GPU渲染时间越长。

Effect_DOF

3.8 镜头噪点 (Grain)

– 该效果会将胶片噪声叠加到图像上,用以模拟相机胶片上的小颗粒产生的粗糙效果,营造电影效果。

纹理参数说明
Colored启用复选框使用彩色颗粒。
Intensity设置Grain的强度。数值越高,可见颗粒越多。
Size设置Grain的大小。数值越高,颗粒尺寸越大。
Luminance Contribution通过设置该值来控制噪声响应曲线。这个值是基于场景亮度的。数值越低,暗区噪音越小。

Effect_GR

3.9 镜头失真 (Lens Distortion)

– 该效果会使图像产生畸变 (枕形/桶形),用以模拟真实世界相机镜头的形状引起的失真。

畸变参数说明
Intensity设置总失真量的值。
X MultiplierX方向上失真强度。0为不失真。
Y MultiplierY方向上失真强度。0为不失真。
Center X设置失真中心点(X轴)。
Center Y设置失真中心点(Y轴)。
Scale设置全局屏幕缩放的值。

Effect_LD

3.10 镜头晕影 (Vignette)

– 该效果会使图像边缘变暗,用以模拟真实世界中过厚或堆叠过多滤光片、副镜头或不合适镜头笼罩引起的效果。使用此效果能使人的注意力聚焦到图像中心。

包含两种模式,其中Classic模式是围绕中心的晕影,Msaked模式可以自定义晕影形状纹理。

经典模式参数说明
Color设置Vignette的颜色。
Center设置Vignette中心点(屏幕中心为[0.5,0.5])。
Intensity设置屏幕上渐晕的数量。
Smoothness设置Vignette边框的平滑度。
Roundness将值设置为Vignette的圆滑度。较低的值会使其接近方形。
Rounded启用此复选框可以使Vignette完全变为圆形。禁用时,Vignette效果依赖于当前的宽高比。
遮罩模式参数说明
Color设置Vignette的颜色。使用alpha通道来增加透明度。
Mask选择一个黑白蒙版来用作为Vignette。
Intensity设置遮罩不透明度值。

Effect_VIG

3.11 运动模糊 (Motion Blur)

– 该效果会使物体在运动方向产生模糊,用以模拟现实中相机光圈打开情况下移动或捕捉移动速度快于相机曝光时间的物体时产生的模糊效果。

模糊参数说明
Shutter Angle设置旋转快门的角度。数值越大,曝光时间越长,模糊效果越强。
Sample Count设置采样点数量的值。这会影响质量和性能。

4 脚本控制

有时我们需要镜头效果根据时间产生变化,比如:人从昏迷醒来时视力的慢慢恢复,战斗时受伤死亡的屏幕闪动变化,高光时刻或危险警告等屏幕特效。那么这时就要使用代码控制插件中的参数来实现。

直接附上官方文档中的代码,可以简单了解下脚本的实时控制。

using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
public class VignettePulse : MonoBehaviour
{
   PostProcessVolume m_Volume;
   Vignette m_Vignette;
   void Start()
  {
      // Create an instance of a vignette
       m_Vignette = ScriptableObject.CreateInstance<Vignette>();
       m_Vignette.enabled.Override(true);
       m_Vignette.intensity.Override(1f);
      // Use the QuickVolume method to create a volume with a priority of 100, and assign the vignette to this volume
       m_Volume = PostProcessManager.instance.QuickVolume(gameObject.layer, 100f, m_Vignette);
   }
   void Update()
  {
       // Change vignette intensity using a sinus curve
        m_Vignette.intensity.value = Mathf.Sin(Time.realtimeSinceStartup);
  }
   void OnDestroy()
  {
       RuntimeUtilities.DestroyVolume(m_Volume, true, true);
  }
}
  • 83
    点赞
  • 363
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Unity后处理是一种在渲染完成后对图像进行处理的技术,可以通过添加后处理效果来改善游戏的视觉效果。Unity后处理功能包括色彩校正、景深、运动模糊、环境光遮蔽等效果。通过使用Unity后处理功能,游戏开发者可以轻松地创建出更加逼真的游戏画面。 ### 回答2: Unity Postprocessing后期处理)是一个集成到Unity引擎中的强大工具,它给游戏制作人员带来了更多的控制权和自由度,使游戏更加优美、亮丽、高质量。Postprocessing可以改变游戏画面的整体色调、亮度、对比度以及模糊等特效,从而让游戏画面效果更佳、更加精致。 具体来说,UnityPostprocessing Stack v2 提供了许多后期效果,包括屏幕空间环境光遮蔽 (SSAO)、景深、快速移动时的模糊、运动模糊、线性阴影、颜色校正等等。同时,Postprocessing还提供了相机后处理堆栈的模块化和可定制化的设计,这让用户能够以自己的方式去创建他们自己的后期处理效果。 此外,Unity Postprocessing可以轻松地实现各种图形效果,比如片头的转场、画面跳拍效果、飞行视图、泛光等,这些效果都是非常有利于提高游戏的画面效果的。 但是,由于postprocessing是对画面的后期渲染调整,因此它是一个消耗GPU性能的操作。因此,在使用Postprocessing的同时还要注意游戏性能的影响。它可能降低游戏的帧率、增大游戏的卡顿等。所以在使用Unity Postprocessing时,需要为游戏制定能够平衡画面质量和性能的策略。 综上所述,Unity Postprocessing 开发者可以通过使用这个工具,创建出高质量、层次分明、视觉冲击力强烈的游戏效果,不仅给玩家带来精彩的游戏体验,还可以成为游戏的差异化竞争优势。 ### 回答3: Unity中的后处理Postprocessing)是一种增强游戏视觉效果的技术,包括场景的颜色校正、环境光遮蔽、景深模糊、反射、抗锯齿、运动模糊等效果。它可以让游戏画面更加真实、优美,提高游戏体验。 Unity中的后处理技术基于Shader的编写实现。通过在相机上添加后处理脚本(Postprocessing Stack),我们可以将多种后处理效果堆叠在一起,使得游戏画面更加华丽。常用的后处理效果包括: 场景的颜色校正,可以调整游戏画面的色彩风格,增加游戏的氛围感。通过对场景的明度、饱和度、色调进行调整,可以精细地塑造出不同的场景环境。 环境光遮蔽,可以增强场景物体之间的空间感和深度感。它通过计算遮挡物体对光线的影响,使得场景中的物体在投射阴影时更加真实。 景深模糊,可以产生焦距模糊的效果,增加真实感。景深模糊通过使用相机的深度信息,计算出离焦点的模糊程度,使得镜头前后的物体在呈现效果上表现出不同的清晰度。 反射,可以让游戏中的水面、玻璃等物体反射出周围景色的效果更加真实。反射通过计算出镜面上的反射图像,结合上色、模糊等特效,增强了游戏的逼真度。 抗锯齿,可以消除模型边缘的锯齿状痕迹。它通过对图像进行平滑处理,使渲染图像更加平滑自然,很大程度上提高了游戏的视觉表现力。 运动模糊,可以模拟出快速移动时物体的虚化效果。它可以让场景中的运动物体表现出更加真实的移动轨迹,使得场景更不拘束于静态效果。 总之,Unity中的后处理技术可以让开发者在保持游戏的性能表现不变的情况下,增加游戏的美观度,更加逼真自然。后处理技术已经成为现代游戏制作必不可少的一部分,得到了广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值