校正自身阴影

“Self Shadow Correction”参数使您能够校正自身阴影问题,在光线投射过程中,阴影投射聚光灯可能会发生此问题。

注:

若要在灯光控制窗口(在“Multi-lister”中双击某个灯光会打开该窗口)中查看“Self Shadow Correction”参数,必须将“Type”设置为“Spot”,将“Renderer Shadows”设置为“ON”

聚光灯使用阴影贴图(或深度贴图)来计算曲面所投射的阴影。如果曲面是由聚光灯照亮的,则阴影贴图将始于被照亮的曲面并从该灯光延伸出去。位于此阴影贴图内的任何曲面都将处于阴影中。

被照亮的阴影投射曲面上可能会出现以下问题:由于该阴影贴图具有固定的分辨率,它可能不够平滑而无法用于呈现曲面。该阴影贴图实际上可能会与曲面相交。这意味着被照亮的曲面将部分处于它自己的阴影内。结果在曲面上出现了一个暗波纹图案。

若要解决此问题,可以将“Min Depth”参数设置为较小的值。接下来,渲染器将在计算阴影贴图之前,临时朝着灯光移动阴影投射曲面,使得该曲面不再处于它自己的阴影内。

使用“Min Depth”存在的问题是,很难界定什么样的值太小及什么样的值太大。如果“Min Depth”值太小,该曲面仍将部分处于它自己的阴影内。如果“Min Depth”值太大,其他应处于阴影内的曲面可能不再处于阴影内。另一个问题是,“Min Depth”值使用世界空间单位,这样该值的大小将取决于您的场景的比例尺。使用“Min Depth”还可能会影响运动模糊效果。

使用“Blend Offset”可以很好地解决自身阴影问题。与“Min Depth”等距离移动整个阴影投射曲面不同,“Blend Offset”将不同的曲面点移动不同的距离,这取决于阴影贴图上原点的位置是否合适。

自身阴影甚至可能更多是运动模糊对象的问题。渲染器通过模拟真实相机的快门和曝光时间来计算运动模糊。对于每个帧,都会在快门的打开时间和关闭时间之间多次渲染运动模糊对象。但是,仅在快门打开和关闭之间计算阴影贴图。如果对象正以非常快的速度离开聚光灯,则在运动模糊部分中它可能看起来完全在它自己的阴影内。