unity的URP渲染管线

什么是URP渲染管线,它有什么优点

URP全称universal rendering pipeline。在unity中是一种渲染流程,与默认的build-in渲染管线不一样,它有很多优点。
1.多平台,URP可以在不同的平台上保持一致的效果。
2.高性能,相较于默认管线,性能更好。
3.模块化,允许开发者更容易地定制和扩展渲染管线。作为入门我这个还没有感觉到。
4.现代渲染特性,先较默认管线多出来很多渲染功能,如后处理,屏幕空间反射等等。

怎么转换到URP渲染管线

如图所示,点击窗口,包管理器,选择unity注册表。然后搜索universal xxxx,就弹出这个,下载。

接下来新建一个URP配置文件,如图所示。

创建之后会有两个文件,然后我们打开项目设置的graphic选项,如图把配置文件拖过去。

然后我们发现一些材质变成了紫色,那是因为适用于原本管线的材质在URP中失效了,我们需要把它们转换成URP的材质。

URP材质转换

在2022版unity中,点击窗口,渲染,我们看到有一个渲染管线转换器,点击它。

我们把所有选项都勾选,然后点击initialize and convert。


如果转换之后还是出现紫色,说明这些材质可能要自己手动去调整为URP材质。以这个树枝为例。
我们要找到universal rendering pipeline的着色器,选择lit。

对于这个树枝的材质调整,首先是把先前的贴图贴上,然后是选择alpha裁剪,设置一定的数,让材质像树丛一样有缝隙。然后表面材质选择不透明,使场景有树荫。其他可以看情况去调整。

重新渲染

为了获得更好的光影,我们重新将场景的光影渲染全部去除并重新添加

天空盒和直接光

在窗口,渲染选项中找到照明,然后在环境选项卡中添加默认天空盒,同时在场景中添加直接光。

在直接光选项中添加软阴影

环境选项卡中添加直接光为太阳光源,以及添加天空盒为环境照明和环境反射。其他属性看情况调整一下。

场景烘焙

在这里我们首先要新建一个光照设置。烘焙的设置比较多,首先分为实时光照和混合照明。

实时光照

实时光照很明显,就是计算机实时计算你的光。它会将你场景的所有灯光设置成实时模式,所有静态和非静态的物体表面光照都会受实时光照影响。

混合照明

混合照明比较复杂,分三种模式:间接烘焙(BakedIndirect),shadowmask ,减性(Subtractive)

BakedIndirect

在此模式下Baked和Mixed模式灯光只会渲染间接光源(物体反弹的光)

我把所有光源都去掉了,树林还有间接光

Subtractive

Mixed的灯光对静态物体烘培直接光源间接光源和阴影,对动态物体实时渲染阴影,删掉的话会影响动态对象的阴影渲染
Baked的灯光对静态物体烘培直接光源间接光源和阴影,不对动态物体实时渲染光线,删掉的话不影响场景


这是mixed光,对于动态物体(树)是实时渲染的,而对于静态物体(地面)则是烘焙(光照不变)。

把mixed光去除,发现地面因为渲染了直接光比较亮,而动态物体(树)就变暗了,而且没有了阴影。

换成baked光,动态物体(树)不实时渲染了。而且去不去除这个灯光对树和地面都没有影响。

shadowmask

Shadownmask类似 BakedIndirect,不同的就是渲染阴影的方式。
Shadowmask 光照模式允许 Unity 在运行时结合烘焙阴影和实时阴影,并允许渲染远处的阴影。并且提供最好的阴影渲染效果
简而言之就是近处阴影是实时远处是烘焙阴影

在这个场景,我们渲染一下间接光照。

反射探针

反射探针可以实现一些镜面反射的效果。

如上图新建一个发射探测器。
如果没有在场景烘焙那里选择自动生成,就要每次改动都点击一下发射探测器的bake按钮,我们可以在场景烘焙那里勾选一下自动生成。

调整探针区域,覆盖住这个场景

把探针本身放到合适的位置,实现反射

后处理

后处理的功能十分强大,这里举两个例子

bloom 泛光

添加一个全局体积

新建一个配置文件,然后添加覆盖bloom。

稍微拉一下数值,得到一个暖色调的泛光,模拟日落。

tone mapping

添加覆盖tone mapping,设置模式为ACES

获得较强的对比度

环境光遮挡

从项目设置的graphic选项卡中点击管道设置找到相应资产

再点击这个资产的渲染器找到对应的渲染器

添加下图中的光遮挡选项,设置一定的强度



获得细节处的光遮挡阴影,通常这个效果是应用于物体拐角缝隙处,呈现阴影的效果。