欢迎光临散文网 会员登陆 & 注册

Unity学习笔记 Vol.102 Unity 实时光追(六)- Screen Space Global Illuminatio

2022-07-19 14:07 作者:NXL2  | 我要投稿

记笔记

本节我们来学习一下,如何使用屏幕空间全局光照功能,简称SSGI。

与之前讲解的光追功能一样,SSGI既有光栅化版本,也有我们将要讲解的光追版本。

首先我们要在Volume中添加 SSGI(Screen Space Global Illumination)重载,如果你无法在画面中看到SSGI的效果,那么我们需要检查一下相机的Frame settings帧设置中,是否已经启用了SSGI。

现在场景中所用的相机,没有设置自定义的帧设置。

所以我们要去project settings界面的HDRP Default settings界面中,找到Default Frame Settings

然后检查是否启用了SSGI。

除了确保在Volume上添加,屏幕空间全局光照的重载,以及检查相机的帧设置上是否启用了SSGI,我们也需要查看场景中物体,所用的材质是否都启用了SSGI。

我们可以在Project窗口选择过滤只查看,然后逐个检查相关材质上是否启用了,Receive SSR/SSGI。

我们来看一下Volume用上SSGI,各项参数的具体用法。

如果我们勾选Enable启用SSGI,但是没有勾选Ray Tracing选项,这时候HDRP使用的算法就是普通的光栅化算法。

我们可以看到,光栅化算法的SSGI,会在烘焙所得的光照贴图的基础上,再叠加一层从屏幕空间,全局光算法得到的全局光信息。

如果我们启用Ray Tracing选项,可以看到界面上会出现更多的参数。不过这时候可能你有一个问题,原先光照烘焙获得的贴图,现在还有用吗,答案是,一旦你启用光追版本的屏幕空间全局光照,烘焙所得的光照贴图就没有用了,现在画面中的,全局光照效果都是来自SSGI的。

接下来,我们来详细了解SSGI相关的各项参数,首先是Layer Mask,与之前的环境光遮蔽和屏幕空间反射一样,这里可以用于控制,哪些物体会参与SSGI的计算,我们选择Everything就是所有。

Mode模式,我们可以在这里选择Performance,性能版或者Quality,质量版。通常推荐使用性能版本,如果你的机器性能很好,也可以尝试Quality版本。

如果选择了Performance模式,可以看到下面还有一个Quality质量设置

你可以选择Custom自定义或者选择低,中高3档预先配置好的参数数值

Max Ray Lens最大射线长度,可用于控制光追计算时射线的长度,这个长度越长就越消耗性能。

如果你觉得在启用光锥SSGI以后,整体画面偏暗,我们可以把后面的Clamp Value数值调大,比如拉到最大值10,这样可以让光追射线返回更高强度的,光照信息,不过把Clamp Value的数值设置的越大,噪点就可能越多,如果场景中存在平行光源Directional Light,那么,也容易造成来自平行光的漏光现象。

如果启用Full Resolution,如选全分辨率选项,那么HDRP会为屏幕上的每一个像素,在每一帧中指定一条射线,如果没有启用的话,系统将只会为每4个像素指定一条射线。

在Performance模式下,我们可以通过控制Upscale Radius这个半径值的大小,来控制HDRP,计算全局光照时会使用的周边临近,物体的数量,这个数值越大,计算全局光照时,考虑的周边物体的数量就越多,获得的全局光照效果就会越好。

使用光线追踪的方式,生成全局光照信息时,一个无法避免的画面缺陷就是噪点,因此我们要在这里应Denoise降噪算法

不打开降噪选项

如果我们不打开降噪选项,可以看到画面上到处都是细小的噪点

我们可以尝试启用Half Resolution Denoise选项,也就是只在降噪算法中,应用一半的当前画面分辨率进行计算,这样可以提高游戏运行性能,当然降噪的质量也会相应降低

Denoiser Radius,可用于设置降噪算法所用的半径大小

Second Denoise Pass,可以在降噪完成以后,再进行一次降噪处理,以提升降噪的效果。

如果我们把模式切换到Quality质量模式,可以看到会出现两个在Performance,性能模式下没有的参数

Simple Count采样数

Bounce Count反弹次数,

采样数:用于控制每一帧中,每个像素发出的射线数量,增加这个数值可以提高全局光质量,但是运行时间会线性增加。

反弹次数:用于控制光追射线,在物体表面的反弹次数,增加这个数值,会让运行时间以指数及增加,所以调整反弹次数时一定要格外小心。

正确运用光追版本的屏幕空间,全局光照效果,以后我们可以不必再使用烘焙,光照贴图的方式来获得间接光信息,不过在场景中,我们还是需要使用反射探针,来避免漏光现象的发生。


Unity学习笔记 Vol.102 Unity 实时光追(六)- Screen Space Global Illuminatio的评论 (共 条)

分享到微博请遵守国家法律