在Unity中,你可以选择不同的渲染管道。渲染管道执行一系列获取场景内容的操作,并在屏幕上显示它们。在高水平上,这些操作包括:Culling,Rendering,Post-processing。不同的渲染管道具有不同的功能和性能特征,适用于不同的游戏、应用和平台。

Unity提供了以下渲染管道:

  • 内置的渲染管道:Unity的默认渲染管道。它是一个通用的呈现管道,只有有限的定制选项。
  • 通用渲染管道(URP):一个可编写脚本的渲染管道,可以快速、轻松地定制,并允许您跨广泛的平台创建优化的图形。
  • 高清晰度渲染管道(HDRP):一个可编写脚本的渲染管道,它允许您在高端平台上创建尖端、高保真的图形。
  • 也可以使用Unity的脚本渲染管道API创建自己的自定义脚本渲染管道(SRP)。您可以从头开始,也可以修改URP或HDRP来满足您的需要。

因为是在unity 2019之后,把之前的LWRP改成了URP(通用渲染管线),因此本节的Post-processing是需要在unity 2019之后的版本使用的,我使用的是2019.3。本文章主要讲,怎么在URP渲染管线中使用Post-processing,以及这些Post-processing的介绍。

 

加入后处理的步骤:

1.新建一个GameObject,并且改名为Post-precessing:

2.给新建的GameObject添加一个Volume组件:

3.新建一个文件夹,并增加一个Volume Profire,并改名为URPVolumeProfile:

4.在Volume中把profile栏选中我们刚刚创建的Volume Profile:

5.之后就可以在Volume下面增加我们需要的Post-processing了:

 

那可以增加哪些Post-processing:

  1. Bloom
  2. Channel Mixed
  3. Chromatic Aberration
  4. Color Adjustments
  5. Color Curves
  6. Depth of Field
  7. Film Grain
  8. Lens Distortion
  9. Lift Gamma Gain
  10. Motion Blur
  11. Panini Projection
  12. Shadows Midtones Highlights
  13. Split Tones
  14. Tonemapping
  15. Vignette
  16. White Balance

下面分别介绍这些效果:

  • Bloom :Bloom效果创造了从明亮区域边缘延伸出的光的边缘,造成了一种极其明亮的光压倒相机的错觉。

PropertyFunction
IntensitySet the strength of the Bloom filter.
ThresholdSet the level of brightness to filter out pixels under this level. This value is expressed in gamma-space.
Soft KneeSet the gradual threshold for transitions between under/over-threshold (0 = hard threshold, 1 = soft threshold).
ClampSet the value for clamping pixels to control the Bloom amount. This value is expressed in gamma-space.
DiffusionSet the extent of veiling effects in a screen resolution-independent fashion.
Anamorphic RatioSet the ratio to scale the Bloom vertically (in range [-1,0]) or horizontally (in range [0,1]). This emulates the effect of an anamorphic lens.
ColorSelect the color of the tint of the Bloom filter.
Fast ModeEnable this checkbox to boost performance by lowering the Bloom effect quality.

Dirtiness settings:

PropertyFunction
TextureSelect a Dirtiness texture to add smudges or dust to the lens.
IntensitySet the amount of lens dirtiness.
  •  Channel Mixed:通道混频器效果修改每个输入颜色通道对输出通道的总体混合的影响。例如,如果你增加绿色通道对红色通道整体混合的影响,最终图像的所有区域的绿色(包括中性/单色)色调更红。

比方说调整Red对Red的影响 值从默认的100 调整到150:

  • Chromatic Aberration :色差产生了沿边界分离图像的暗部和亮部的颜色条纹。它模仿了真实相机在镜头不能将所有颜色连接到同一点时产生的颜色失真。

效果:

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

PropertyDescription
Post Exposure调整场景的EV(不是EV100)整体曝光。URP在HDR效应之后和tonemapping之前应用它,这意味着它不会影响链中之前的效应。
Contrast使用滑块扩展或缩小色调值的整体范围。较大的正值将扩展色调范围,较低的负值将缩小色调范围。
Color Filter使用颜色选择器来选择颜色调整效果应该使用的颜色来倍增渲染和着色结果。
Hue Shift使用滑块移动所有颜色的色调。
Saturation使用滑块来推动所有颜色的强度。

调整一下曝光度与饱和度效果:

  • Color Curves:渐变曲线是调整色相、饱和度或亮度特定范围的高级方法。您可以调整8个可用图形中的曲线,以实现诸如特定色相替换或某些亮度去饱和度等效果。

比方说我们调整红色的曲线:

  • Depth Of Field:景深组件应用景深效果,模拟相机镜头的焦点属性。在现实生活中,相机只能清晰地聚焦在特定距离的物体上。离相机较近或较远的物体都没有对焦。模糊给了一个关于物体距离的视觉提示,并引入了“散焦”,这是指当他们失去焦点时,视觉伪影出现在图像的明亮区域。

  • Film Grain:膜颗粒效应是模拟照相膜的随机光学纹理,通常是由物理膜上存在的小颗粒引起的。

PropertyDescription
Type使用下拉菜单选择要使用的纹理类型。您可以从URP包含的预设列表中选择,或者选择Custom来提供您自己的纹理。
Texture指定一个纹理,这个效果使用自定义纹理。此属性仅在类型设置为Custom时可用。
Intensity使用滑块设置胶片颗粒效果的强度。
Response使用滑块设置噪声响应曲线。这个值设置得越高,亮度较高的区域的噪音就越小。

测试0.81的强度效果如下:

  • Lens Distortion:失真最终渲染的图片,以模拟一个真实的相机镜头的形状。

0.75的强度效果如下:

  • Lift Gamma Gain:这种效果允许你执行三色分级。升力增益跟踪球遵循ASC CDL标准。当您调整轨迹球上的点的位置时,它会将图像的色调在给定的色调范围内移向该颜色。使用不同的轨迹球影响不同的范围内的图像。调整轨迹球下的滑块以抵消该范围的颜色亮度。

PropertyDescription
Lift

用这个来控制暗色调。这对阴影有更夸张的效果。

•使用轨迹球来选择URP应该将暗色调的色调转换到哪一种颜色。

•使用滑块来抵消轨迹球颜色的颜色亮度。

Gamma

使用这来控制与权力功能的中音。

•使用轨迹球来选择URP应该使用的颜色来改变中间色调的色调。

•使用滑块来抵消轨迹球颜色的颜色亮度。

Gain

使用这个来增加信号和使高光更亮。

•使用轨迹球来选择URP用来将高光调成的颜色。

•使用滑块来抵消轨迹球颜色的颜色亮度。

比方说调整lift向绿色的方向:

  • Motion Blur:运动模糊效果模拟了真实相机拍摄物体运动速度快于曝光时间的图像时产生的模糊。这通常是由于物体快速移动,或曝光时间过长所致。通用渲染管道(URP)只模糊摄像机的运动。

Panini Projection:这个效果可以帮助你在一个非常大的场景中渲染透视视图。Panini Projection是一个圆柱形投影,这意味着它保持垂直的直线笔直和垂直。与其他圆柱形投影不同,Panini Projection使穿过图像中心的放射线也保持直线。

distance 0.5效果对比,发现中心向外凸:

  • Shadows Midtones Highlights:阴影中调突出效果分别控制阴影,中调和渲染的突出部分。不像提升,伽马,增益,你可以使用这个效果来精确地定义阴影,中间色调和高光的色调范围。

测试:

可以看到,不同的亮度,被调整成了不一样的颜色

  • Split Toning:这种效果根据亮度值对图像的不同区域着色,以帮助您实现更独特的外观。你可以用它来给场景的阴影和高光添加不同的色调。
PropertyDescription
Shadows使用颜色选择器来选择URP用于着色阴影的颜色。
Highlights使用颜色选择器选择URP用于高光着色的颜色。
Balance使用滑块来设置阴影和高光之间的平衡。较低的值导致更明显的阴影色调比突出色调。较高的值会产生相反的效果,与阴影色调相比,突出色调更明显。

我们把shadows改成黑色。发现阴影部分更加黑了:

  • Tonemapping:调音是将图像的HDR值重新映射为新的值范围的过程。它最常见的目的是使一个低动态范围的图像看起来有一个较高的范围。

可以选择的颜色分级的调色算法:    

  

None:如果你不想使用调音,请使用此选项。

Natural:如果你只想对色调和饱和度影响最小的范围重新映射,请使用此选项。对于广泛的颜色分级来说,这通常是一个好的起点。

ACES:使用这个选项来应用一个接近ace调音器的参考,为一个更电影的外观。它比中性的对比度更强,并且对实际的颜色色相和饱和度有影响。如果你使用这个调色器,Unity会在ACES的颜色空间中完成所有的分级操作,以获得最佳的精度和结果。

以下是没有使用ACES效果与使用过的效果的对比,后面的是有使用的。

  • Vignette:在摄影中,晕光是指图像边缘相对于中心的变暗和/或去饱和度。在现实生活中,过多的滤镜、副镜头和不合适的镜头罩通常是造成这种效果的原因。您可以使用vignetting绘制焦点到图像的中心。

PropertyDescription
Color使用颜色选择器设置晕光的颜色。
Center设置中心点。供参考,屏幕中心为[0.5,0.5]。
Intensity强度
Smoothness使用滑块设置小装饰边框的平滑度。值的范围在0.01和1之间。值越高,晕线边界越平滑。默认值是0.2。
Rounded当启用时,插图是完美的圆形。禁用后,将与当前宽高比上的形状匹配。

  • White Balance:白平衡组件应用白平衡效果,消除不现实的颜色转换,以便在现实生活中显示为白色的项目在最终图像中呈现为白色。你也可以使用白平衡在最终渲染中创造整体的冷暖感觉。

PropertyDescription
Temperature使用滑块将白平衡设置为自定义颜色温度。值越高,颜色温度越高,值越低,颜色温度越低。有关色温的更多信息,请参阅维基百科:色平衡。
Tint使用滑块来补偿绿色或品红色调。

以下是调整色调更暖的测试:

 

 也是本着学习的态度,看看unity新出的URP后处理有哪些效果,顺便记录一下,供以后使用参考。更详细的信息,请参考:

Universal Render Pipeline介绍:

https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@9.0/manual/Post-Processing-White-Balance.html 

Effect:

https://docs.unity3d.com/Packages/com.unity.postprocessing@2.1/manual/Chromatic-Aberration.html 

通用后处理:

https://docs.unity3d.com/Manual/PostProcessingOverview.html 

视频教程:

https://connect.unity.com/p/unity-2020tong-yong-xuan-ran-guan-xian-de-hou-qi-chu-li 

https://www.bilibili.com/video/BV1TE41147df?from=search&seid=4250999508380100187

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐