本文记录素描中的明暗技法。当我们思考如何渲染时,光线与阴影是不可避免的。在绘制任何精彩作品之前,我们都需要认真思考这些基础技能。
这个系列的基本主张是:画面里的"暗"不是一种东西,而是三种。 表面朝向产生的明暗、物体互相靠近产生的遮蔽,以及光被挡住产生的投影——它们成因不同、形状不同、边缘的软硬也不同。把三者混成一坨灰,画面就会变平。这一篇讲第一种。
表面朝向
渲染时的一个非常基础的概念是表面的朝向。在 3D 软件中,我们也称之为 normal direction(法线方向)。
例如,当我们观察一个立方体时,很容易分辨哪是正面、哪是顶面。
然而,对于不规则几何体,可能难以判断确切的法线方向。因此,一个明智的策略是——让我们尝试绘制所有从左、从顶、从右等方向可见的表面。
这里的关键在于先分组,再上调子。初学者通常反过来:一上手就顺着形体涂明暗,结果每一笔都在同时处理朝向、遮蔽和投影三件事,最后哪一件都不准。先把画面按朝向切成几个平面组,每组内部暂时不做任何变化,这一步做完,画面就已经有体积了。
我将在以下部分简单列举一些复杂案例。
示例 1 室内场景
绘制表面朝向的示例可能如下所示。
假设我们有一幅完整的室内场景线稿。
假设电视的表面是 front side(正面)。让我们简单绘制以下朝向分类。
[ Top ] 这些是所有从顶部可见的部分。
[ Right ] 这些是所有从右侧可见的部分。
[ Front ] 这些是所有从正面可见的部分。
[ Bottom ] 这些是所有从底部可见的部分。
在此步骤中,你不需要模糊任何东西。你可以选择在过渡到相反朝向的边缘处进行模糊,如我在第四张图中所做的那样。
现在,通过叠加每个朝向层(或简单地将每层不透明度设为 50%),你可能会得到类似这样的效果:
不同朝向已经通过不同颜色区分开来。即使没有线稿,看起来仍然有些真实感。
通过将下图中的每种颜色替换为不同的灰度颜色,我们可以得到如下图片:
只要朝向判断处理正确,最终效果应该与 3D 建模软件中显示的完全一致。
灰度该怎么定
替换灰度的时候不要随便选。按照"天光从上方来"这个最通用的假设,四个朝向的明度顺序基本是固定的:
- 朝上最亮——它接收到的天空面积最大。
- 朝向光源一侧次之。
- 朝向背光一侧再次之。
- 朝下最暗——它只接收地面的反射光。
这四个值之间的间距比它们的绝对值更重要。四个值挤在一起,画面会灰;拉得太开,就会显得生硬。一个实用的起点是:朝上 85%、向光侧 65%、背光侧 40%、朝下 25%。
还有一点:朝下的面不应该是纯黑。它接收地面的反弹光,通常还会带上地面的颜色。下巴底下、桌子底面、拱门内侧都是如此。把它们画成黑色是让画面变"脏"最快的方式。
示例 2 角色模型
让我们来看一个更复杂的模型——角色。我们仍然只需要区分基本方向。
[ Lineart ](线稿)
[ Surface Orientations ](表面朝向)
[ Orientation Overlaying ](朝向叠加)
[ Grayscale Color Replacement ](灰度颜色替换)
角色比室内场景难,因为人体几乎没有平面。处理办法是先把曲面概括成平面:头是一个方块加一个球,胸廓是一个圆角的桶,四肢是一组截面渐变的圆柱。先按这些概括形体分朝向,等大关系立住了,再回去把硬边磨圆。
反过来做——先画柔和的渐变再试图找结构——几乎总是会失败,因为渐变里没有可供判断的边界。
为什么这一步值得单独做
这一步的产物在 3D 里叫 normal pass,在传统素描里叫"大色块"或者"分面"。它的价值在于:
- 它只依赖形体,不依赖光。同一套朝向分组可以配任何光照方案。
- 它把"这块该多暗"从直觉问题变成了可判断的问题——只要能说出这个面朝哪,就能说出它属于哪一档。
- 后面两种暗(遮蔽和投影)都是乘在它上面的,底子不准,后面怎么加都救不回来。
下一篇讲第二种暗:遮蔽阴影。
