T.TAO
返回博客
/6 min read/Art

光影 #2 遮蔽阴影

#Drawing#Lighting#Art
光影 #2 遮蔽阴影

上一篇处理了第一种暗——表面朝向造成的明暗。这一篇讲第二种:遮蔽

A.O. 渲染

在 3D 数字渲染中,一种有用的渲染技术称为 A.O. 渲染,其中 A.O. 代表 Ambient Occlusion(环境光遮蔽)。它们通常看起来非常白,但阴影可以非常深。

例如,Unity 文档中的一个示例:https://docs.unity3d.com/Packages/com.unity.postprocessing@2.0/manual/Ambient-Occlusion.html

另一个来自 https://vr.arvilab.com/blog/ambient-occlusion 的示例。

A.O. 渲染的原理是,我们假设光线从各处以相等的照度照射。只有光线无法进入的地方会显示为非常深的阴影。

A.O. 阴影的原理是,当表面彼此靠近时,它们会产生阴影。距离越远,阴影越柔和。否则,阴影可以深如黑色。

但是,请注意这些阴影不是由投射光线产生的,所以它们不是投影;它们存在是因为进入的光线在衰减。

这个区别很重要,值得展开说:

遮蔽阴影投影
成因光进不来光被挡住
依赖光源方向不依赖完全依赖
位置永远在两个表面的夹缝里在遮挡物的背光侧
边缘总是柔和,随距离渐变可以很硬(点光源近处)
光源移动时不动跟着动

遮蔽阴影不会因为你换了光就消失。 阴天的户外几乎没有投影,但所有的夹缝、褶皱、接触点依然是暗的——那就是纯粹的遮蔽。这也是为什么阴天的照片看起来"发灰但依然有形体"。

遮蔽出现在哪里

只要问一个问题:这个点能看到多少天空?

  • 接触点:两个物体相碰的地方。箱子和地面的接缝、脚和地板、手指与手指之间。这是最深、最锐的遮蔽。
  • 内角:墙与墙、墙与地的交角,抽屉的内侧,杯子的内壁。
  • 褶皱与凹陷:布料的褶子、鼻翼两侧、眼窝、耳廓内部、腋下。
  • 紧邻但不接触的表面:手臂贴着身体但没碰上时,两者之间仍然会互相遮蔽。

反过来,凸起的地方永远不会有遮蔽:鼻尖、膝盖、肩峰、指节。这些位置在 A.O. 图里是纯白的。

衰减规律

遮蔽的强度只取决于距离

  • 两个面贴在一起 → 接近黑。
  • 相隔一点 → 中等灰,边缘开始柔化。
  • 相隔较远 → 几乎没有。

所以画遮蔽时,笔应该从接缝开始,向外迅速衰减。最常见的错误是画成一条均匀宽度的深色描边——那看起来像轮廓线,不像阴影。正确的样子是紧贴接缝处最深,一两个像素内就开始变浅,然后拖出一段柔和的尾巴。

另一个错误是把遮蔽画得太宽。一个放在地上的球,接触点的遮蔽只在球和地面之间那个极小的楔形区域里,不会蔓延到球的半个下半部。蔓延开的那部分是朝向造成的暗,属于上一篇的内容。

示例 1 室内场景

再次,让我们以前一笔记中的室内场景和角色为例。

注意阴影在光线无法进入的区域变得有多深。

通过将 A.O. 阴影与我们之前着色步骤中的灰度表面朝向相乘,可以实现更写实的室内渲染。

[ 应用 A.O. 之前 ]

[ 应用 A.O. 之后 ]

注意场景中柔和阴影的放置方式。

这里的关键是 "相乘" 这个动作。遮蔽不是新加的一层灰,而是对已有明暗的衰减。在数字绘画里就用正片叠底(Multiply)图层;在传统素描里,就是在已经铺好的调子上再压一层。这保证了亮面的遮蔽仍然比暗面的遮蔽亮——因为遮蔽削减的是"能进来多少光",而不是"最终有多暗"。

如果你用的是叠加或者直接画深色,结果会是亮部和暗部的遮蔽一样黑,画面立刻失去层次。

示例 2 角色

角色身上遮蔽最重的几个位置几乎是固定的,可以当成清单用:

  • 下巴与脖子的交界(这是全脸最深的一处)
  • 鼻翼两侧、鼻底
  • 上眼睑投下的眼窝
  • 耳廓内部
  • 锁骨窝
  • 腋下、肘窝、膝窝
  • 手指之间、指根
  • 衣物的褶皱底部,以及衣服与身体之间

把这些位置压暗,人物立刻就"坐"进画面里了。这一步做完之前不需要考虑光源在哪。

下一篇讲第三种暗:投影

本系列文章

素描中的光影
  1. 01光影 #1 表面朝向
  2. 02光影 #2 遮蔽阴影
  3. 03光影 #3 投影