← 探索新知
ASTERXOR / 探索新知

影子的边缘为什么有软有硬

宽阔的灯可以只被挡住一部分,部分可见性描出了阴影周围的过渡。

同一可见性曲线绘成条带:光源越宽,过渡越宽。
同一可见性曲线绘成条带:光源越宽,过渡越宽。
探索新知ASTERXOR / LEON LEUNG

同一个物体,为什么在一种灯下投出锐利影子,换种灯却变柔和?

阴影记录哪些光路能到达表面。光源很小时,通常不是可见就是被挡住;光源宽大时,障碍物可以只遮住其中一部分。可见光源比例逐渐改变,就形成半影:由部分照明构成的边界。

柔和边缘,记录了一盏只露出部分的灯。
THE IDEA

朝灯的方向看回去

想象站在接收表面的一个点,朝灯看去。不透明障碍物若挡住整个光源,直接光贡献就不存在;整个光源可见时,直接光便可以到达;两者之间,只有部分光源能沿无遮挡路径照到这里。

这个解释不要求物体半透明或边缘模糊。本例障碍物的边界完全锐利。柔和来自光源具有尺寸,不同光线遇到同一边缘时,分别经过它的不同侧。

光源两端的极限光线擦过遮挡物,界定半影区域。
FIG 01光源两端的极限光线擦过遮挡物,界定半影区域。
THE MODEL

用小截面看清光路

计算采用二维截面:水平线光源高度为三,不透明遮挡物高度为一,接收面高度为零。遮挡物宽0.6单位。光源宽度依次为0.02、0.6和1.2单位,其他尺寸全部不变。

每个接收位置都向光源上均匀排列的1,001个点检查候选光线。若光线在遮挡物高度处的交点落在遮挡物内部,就算被挡住。剩余可见比例成为图中的数值。这是归一化可见性计算,不是完整的辐射度渲染。

THE RESULT

光源越宽,过渡越宽

几乎是点光源的0.02单位光源产生狭窄边界,较宽光源产生更宽的过渡。在本例几何中,单侧边缘半影宽度等于光源宽度,乘以遮挡物到接收面的距离,再除以光源到遮挡物的距离。这两个距离分别是一和二。

预测宽度因此是0.01、0.3和0.6单位。光路图说明原因:来自光源两端的光线擦过同一遮挡边缘,却落在接收面的不同位置。光源变宽,这两条极限光线的落点就分得更开。

三种线光源宽度下的归一化可见比例,没有辐射度加权。
FIG 02三种线光源宽度下的归一化可见比例,没有辐射度加权。
THE TRADE-OFF

位置也影响柔和程度

把遮挡物移近接收面,会缩短极限光线继续分开的距离。所以,即使灯很宽,接触阴影仍可能比较清晰。若保持其他几何关系合适,把物体移离接收面,则可能扩大过渡区。

日常说的大光源,往往更准确地指从物体位置看去角度很大的光源。物理尺寸本身不够:很大的灯放得很远,也可能只占很小角度。本例固定距离、只改变宽度,就是为了不混淆这些变化。

同一可见性曲线绘成条带:光源越宽,过渡越宽。
FIG 03同一可见性曲线绘成条带:光源越宽,过渡越宽。
IN PRACTICE

可见性只是亮度的一部分

模型给予每个光源采样点相同权重。真实照明还取决于发射强度、距离、表面方向和二维发光区域的几何。间接光能照亮原本被挡住的区域,多个光源还会叠加多重阴影。因此,应把图理解为可见性曲线。 本例线光源在各个独立边缘产生近似线性的斜坡。圆形或矩形面光源可能产生不同形状的过渡,因为可见部分随二维面积变化,而非随线段长度变化。

相机又加入曝光、色调映射和采样。看起来暗的阴影不一定没有物理照明,照片中的软边也可能来自失焦或运动。实验只隔离一个机制:锐利不透明物体对扩展光源的部分遮挡。

LOOK AGAIN

把影子读成房间的线索

边界可以提示光源的视角大小,以及物体与表面的间距,但没有额外信息,无法唯一确定其中任何一个。不同排列可能产生相似宽度。完整影形还取决于物体轮廓和接收表面的弯曲。

绘制或布置简单场景时,一个实用问题是:每个点能看见光源的哪些部分?这个问题具体解释了平滑过渡,不必把柔和理解为事后随意涂在黑色剪影上的模糊。光线本身已经包含了边缘。

留一个想法带走

光一点点消失,影子的边缘就一点点变柔。