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

Unity学习笔记 Vol.106 Unity 实时光追(十)- Recursive Rendering递归式渲染

2022-07-25 08:28 作者:NXL2  | 我要投稿

记笔记

本节我将会介绍Recursive Rendering递归式渲染,这是HDRP光追功能组合中提供的一项功能,非常适合渲染包含多个层次的,反射和折射效果的透明物体,要使用递归式渲染。

我们需要为场景添加Recursive Rendering这个Volume重载,同时把需要做递归式渲染的物体材质上的Recursive Rendering模式打开,为而让反射效果更丰富。

我们也可以打开Receive SSR Transparent这个选项,它的意思是在透明材质上接受屏幕空间反射效果。

我们也可以在Shader Graph中打开Recursive Rendering选项,你可以在Graph Settings界面中找到Surface Options,在里面可以找到Recursive Rendering选项。

我们在场景中放了一条龙的模型,材质设置为HDRP/Lit,Surface Type设置为透明,折射率设置为1.55,这是水晶的折射率。

未打开Recursive Rendering和Receive SSR Transparent的效果
打开Recursive Rendering和Receive SSR Transparent后的效果

当打开Receive SSR Transparent作为选项,我们可以看到龙的表面,增加了一层来自周围的反射信息,在启用Recursive Rendering模式,可以看到整个物体的反射和折射表现更为真实了。

接下去,我们来看一下Recursive Rendering的具体参数,配置首先是Layermask,这可以用来控制哪些物体会参与地规式渲染计算。

Max Steps最大深度,可用于控制光追射线,在计算反射和折射时,反弹和折射的最大次数,达到这个次数以后,HDRP会返回最终在屏幕上呈现的颜色。

Ray Length射线长度,可用于控制从当前相机射出的光追射线长度,这一长度以米为单位,因此如果当前相机和参与递归式渲染物体的距离超过了这里的数值,光追射线将无法找到会与之发生碰撞的表面

这时就会直接返回天空的颜色,也就无法实现递归式渲染了。

最小光滑度要参与递归式渲染的计算物体表面的光滑度必须大于这里设定的数值,还会产生光追的反射效果。

总结起来,虽然Recursive Rendering能为我们带来更为真实的反射和折射效果,使用方法也非常简单,但是这项效果比较耗费性能,所以大家在使用的时候要酌情慎用。


Unity学习笔记 Vol.106 Unity 实时光追(十)- Recursive Rendering递归式渲染的评论 (共 条)

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