本笔记使用URP管线进行说明
配置渲染管线阴影参数
在项目窗口中,主菜单中选择Edit -> ProjectSettings,然后选择Quality,查看当前项目所使用的URP资源,目前例子所使用的资源为UniversalRP_HighQuality资源
在工程窗口中,会有对应的渲染管线配置资源文件,选择这个文件,查看其Inspector
在Inspector面板中,有一项Shadows,展开它可以看到渲染管线中和阴影相关的配置
Max Distance属性表示距离相机的最大距离,在这个距离内Unity会渲染阴影。我们将Max Distance设置为0,观察一下会发生什么情况
可以看到,阴影消失了
Depth Bias和Normal Bias属性,这两个值主要用来帮助处理阴影失真(shadow acne)问题,有些时候,我们会发本来应该是阴影的地方却是亮的。关于相关值的解释,可以在理解阴影映射问题的基础上再来看就会更容易明白,想更多了解的话,可以参考下面这篇文章:
阴影映射问题:shadow acne(阴影失真)和peter panning(阴影悬浮) - 知乎1、《Learn Opengl》第35章中提到,一般在按照光线投射产生深度贴图的做法做阴影映射时,会出现摩尔纹,这种现象叫shadow acne(阴影失真),会出现阴影失真的根本原因是所生成的深度贴图的分辨率是有限的,就会造…https://zhuanlan.zhihu.com/p/431257330 Soft Shadows选项,这个选项用于选择是否激活软阴影
Cascades Count,阴影级联,用于处理平行光源做实时阴影的时候会出现的透视走样(perspective aliasing)问题。这个问题主要是说距离相机较近位置的阴影锯齿感比较强烈,关于这个问题,可以参考Unity官方文档,解释地比较清楚:
Unity - Manual: Shadow Cascadeshttps://docs.unity3d.com/Manual/shadow-cascades.html
在平行光源中启用软阴影
在Hierachy窗口中,选中Directional Light,然后在其Inspector面板中,修改观察Hard Shadows和Soft Shadows的区别
本例中,可以看到软阴影和硬阴影的区别比较小。但在某些情况下,软阴影整体上的效果会非常好,当然这个选项会增加开销。