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

Unity学习笔记 Vol.105 Unity 实时光追(九)- Subsurface Scattering次表面散射

2022-07-22 08:38 作者:NXL2  | 我要投稿

记笔记

本节我们来学习一下如何使用光追版本的次表面散射效果,也就是俗称的3S效果。

3S效果所要模拟的物理现象是,光线不仅仅会在物体表面发生散射,光线会先折射到物体内部。接着在物体内部发生多次散射,最后从物体表面的某一点射出。

我们将通过场景中的两个模型,来演示如何将一个石头材质的模型转变成翡翠材质,画面中左边的模型是刚开始的样子,右侧为打开了光追次表面散射效果后的最终效果。

要让光追的3S效果在模型上生效,第一步我们需要先把材质设置成HDRP默认的3S效果,HDRP默认的3S效果是基于屏幕空间来计算的,效果也很不错

第二步就是在Volume上添加SubSurface Scattering这个重载,你可以在Add Override界面的Ray Tracing菜单中找到这个重载

我们来做第一步选择起始模型的材质,将Material Type材质类型设置为SubSurface Scattering

模型变成了绿色

不过不用担心,这是因为我们还没有为材质关联Diffusion Profile的关系。接着在Surface Input中找到Diffusion Profile参数,点击最右侧的小圆圈图标,在弹出界面中选择DragonStatue_SSS_Diffusion Profile,当然这个名字你可以任意取。

可以看到我们的龙变成了翡翠色

这与刚才的绿色是不同的,刚才的绿色可以定义为出错率。实际上是因为,材质缺乏Diffusion Profile而报错了。

HDRP的普通版本3S效果,需要用到Diffusion Profile里的配置信息,做具体的屏幕空间3S效果的计算,你可以认为Diffusion Profile就是3S效果的配置文件。

我们一起来看一下这个Diffusion Profile的一些控制参数,最上面的Scattering Distance散射距离用于控制光线摄入表面的距离。

点击打开颜色选择器,我们可以通过Intensity

这一参数来控制光线摄入表面的距离,数值越大,可以看到光线摄入表面的距离越深,整个物体看上去内部更亮

Max radius最大半径数值,它反映的就是上面散射距离里设置的数值,最难是指读的,无法进行编辑

Index of Reflection这里可以控制折射率。翡翠的折射率大概是1.66,所以就在这里输入了1.66。

我们可以通过Transmission Mode传输模式来选择,是Thick Object有厚度的物体,还是Thin Object比较薄的物体。这里HDRP提供了预设值,我在这里选择Thin Object,这是适合我们需要的配置。

Transmission Tint可以用来控制光线,在物体内部传输时的着色,这里我们选择了绿色,因为我们要模拟翡翠绿嘛。

现在的效果其实还达不到我们的要求。下一步我们要看一下这个材质的Base Map,这是因为这个材质之前是表现石头的材质,可以看到Base Map的颜色并不是以,翡翠的绿色为主色调,所以我们要处理一下这张图。

在Photoshop里把它的主色调改成绿色,我们把PS里改好的Base Map再关联到材质,就可以看到这个表面,是以翡翠的绿色为主色调了。

更换新贴图的模型效果
增加点光源的模型效果

现在如果我们打开龙模型边上的点光源,就可以看到3S效果了,不过目前的效果还不够明显。

我们现在要在Volume上添加光追,SubSurface Scattering这个重载并启用它,可以看到3S效果更明显了。

光追版本的3S效果可以大大提升至表面散射的效果,不过目前有很多的噪点

原因是我们的Simple Count只有1,我们可以尝试提高Simple Count到6,可以看到噪点几乎消失了。

当然如果你的镜头离你的物体不是太近的话,你也可以把Simple Count设置的低一些。

如果我们现在启用和禁用SubSurface Scattering这个重载,可以看到普通HDRP次表面散射效果和光追版本的次表面散射效果之间的明显区别。

最后需要注意的是,光追版本的次表面散射是比较耗费性能,所以在产品中真正使用的时候,一定要注意性能表现,不过如果你用的电脑很强,也可以完全忽略我刚才说的性能问题。

Unity学习笔记 Vol.105 Unity 实时光追(九)- Subsurface Scattering次表面散射的评论 (共 条)

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