光线
第 3 章
7 年前
1758本章节已完成更新
Chapter 3 光线
真正解释清楚光线是物理学的任务,这里我只进行粗略的、基于几何光学的讲解(事实是我的物理也基本上忘得差不多了)。因为用Illustrator做插图太慢,这里我就偷下懒直接画了,虽然不美观但意思差不了太多。
Chapter3.1 反射(Reflection)
反射可以说是最基础的光线传播形式了,虽说大多数物体都以漫反射为主,但漫反射其实可以理解为一堆反射的叠加。
反射基础形式如下图,N为表面法线(Normal)(法线说的是和表面垂直的虚拟线),入射光线和法线之间的夹角θ_1为入射角(θ读作Theta),θ_2为反射角,这两个角度数值相等。

知道了这个道理其实就能开始尝试画简单的反射面了,以下面的景色为例,取景面上半部分看到的是景色的直线传播,下半部分是平面反射(反射光线用虚线表示),看起来就像是右图的样子:

你可能注意到反射的下半部分颜色和直接传播的上半部分并不一样,这个问题会在菲涅尔部分讲到。
Chapter3.2漫反射(Diffuse)
在图形学为主的光传播中,我们认为任何一个细小平面都会产生反射,而漫反射就是无数这种细小平面的集合。因为各个细小平面的朝向都不一样,他们的法线也不一样,因此在入射光线方向一样的情况下,每个微小平面的反射光线方向都不一样,形成了漫反射。漫反射的颜色通常被视为物体固有色。

Chapter3.3 折射(Refraction)
3.3.1 折射原理
光线在不同介质中的传播速度(Speed)是不一样的,这个速度很大程度上造成了折射现象。大多数同学都知道折射,但不知道怎么判断光线的偏移情况,这里用一个比较low的办法教大家判断 (请注意里我非常不负责任的把波动光学硬挤成了几何光学,只是为了方便理解,请不要照单全收):
把a1、a2、a3和a4重新合到一起,整束光的传播就成了图中右侧的样子:

我们把折射光线和法线的夹角叫做折射角,假设光线在上边白色介质中的传播速度为v1,灰色介质中的传播速度为v2,那么:

我们把n1和n2叫做这两种物质各自的折射系数(Refractive index)。折射系数也可以写作:

其中c是光在真空中的传播速度,v是光线在该介质中的传播速度。
由(1)式可以看出,折射系数和速度成反比,也就是说折射系数越大,光线在该种物质中的速度越慢。关于如何判断折射系数的问题,比较简单的法则就是物体越致密,光线的速度越慢,这个原则适用于多数物体。对于不透明的物体,其实他们也有折射,但是折射光线在其中的衰减速度太快,几乎瞬间就没了。
此时可能有同学觉得,这事儿好像和数字绘画没什么联系啊?的确,数字绘画大多数情况下不需要在脑子里计算光线传播(虽然的确有一些画师能做到),但理解这些传播原理将带来潜移默化的好处。
对于折射,数字绘画中用到的主要不是它对光线的扭曲,而是其透明性。如果画面中的物体发生折射,那么它肯定在一定程度上是透明的,反之亦然,所以折射是表现透明物体的首要法则。
3.3.2 小结
到这里可以做一个小结。一束光从一种介质射到另一种介质上,将在平面上发生反射和折射:

(图中的字母都是随便取的,没有固定标准)IO为入射光线,OL为反射光线,OR为折射光线。θ1为入射角,θ2为反射角,θ3为折射角。在简单的几何光学中,我们认为当物体没有自发光时,反射和折射光的强度等于入射光的强度,也就是能量守恒(波动光学中能量守恒,但可见的光强度不一定相等)。
Chapter3.4 菲涅尔(Fresnel)
不知道看到这里诸位有没有注意到一个问题,既然反射和折射光的强度等于入射光的强度,那么有多少光是反射,多少是折射呢?
菲涅尔描述的就是这种现象,同一个物体表面,根据视角不同,反射和折射的比率也会发生变化。实际的菲涅尔方程很大程度上取决于光的偏振(Polarization)情况(波动光学内容),因此这里我直接跳过计算说结论了。

为了简化图像这里就不再用法线夹角了,而是用平面夹角,对于大多数材料,这个平面夹角越大,折射越强。以上图为例,θ1角度大于θ2,因此θ1看到的折射更多,θ2看到的反射更多。
以一个球为例,完全没有菲涅尔的黑球放在一个棋盘平面上大概长这样:

逐渐增大菲涅尔,可以看到球体出现反射:

这里其实可以把菲涅尔反射提取出来,单独看会发现它集中在物体边缘,也就是视线与物体表面夹角小的地方:

为了更形象的说明这个关系,以一个现实景色为例子:

湖面距离观察者近的部分折射更多,看得见湖底的石头;远离观察者的部分反射更多,颜色多为远山和天空的颜色(因为湖面不是静止的,所以远部分的光线更多的是漫反射,水的这个特性和公路类似但效果相反)。
从菲涅尔还可以得到两个引理:
其中引理2适用的情况不止无限小,根据不同材料,只要平面夹角低于一定阈值,光就不会折射,这也是光纤的原理。
Chapter 3.5 表面散射(Surface Scattering)
菲涅尔讨论了折射和反射的比重问题,是针对于光线从一种介质照射到另一种介质上。那么介质内的光线传播是稳定的么?对于大多数物体,这个答案是否定的,进入另一种介质的光线还可能在物体内部产生反射,然后离开这种介质,这种传播被称作表面散射,广义上有时也被叫做次表面散射(Sub-surface Scattering),俗称3S。
这么一听表面散射的概念似乎比较难理解,但生活中最常见的表面散射材质可以说就是人类皮肤了。皮肤的固有色一种饱和度非常低的红色,几近透明,其颜色主要就是由多层表面散射体现的,皮肤表面散射颜色介于暗红和棕绿之间。
把表面散射加入考虑反范围,我们的光线图变成了这样:

BC为反射光线,EF为穿过物体并射出的折射光线,BH为在物体内反射的折射光线,中间未标出的棕绿色是只进行了一次间接反即离开物体的折射光线。
这里我们认为造成表面散射的主要原因是物体成分的不均匀。表面散射现象明显的材质一般都类似胶体(Colloid)而非溶液(Solution),是具有两种或两种以上相态(Phase)的物体。
这里的散射和物理上的散射(Scattering)略有不同,我们关注的不是位势作用和轨迹,类似折射,表面散射对绘画最重要的不是其光线传播方式,而是其对画面带来的改变。对于具有次表面散射的物体,光线在其中反射会导致光线的强度和色彩都发生改变,一个显著特征就是明暗交界线出现显著地色相偏移,除此之外暗处有辉光感、较普通材质来说死黑明显减少,这几点将在后文着色部分详述。
进入下一章节之前简单看次表面散射对皮肤表现的影响。

如果只考虑固有色,皮肤大概会是这个样子:

看起来缺乏生机,但稍微改一下局部色相,使得明暗过渡的同时色相从黄到红到棕,就能使得材质有机感增强。

Chapter 3.6 环境隔绝(Ambient Occlusion)
环境隔绝这个词主要用于计算机图形学,据称最早来自工业光魔(Industrial Light&Magic),英语原文描述的比较容易理解,但我不太清楚中文是否有得体的翻译,所以还是采用了早期的直译。用最简单的话说,阴天或没有单一强光源时,物体的阴影就是环境隔绝。
更加详细的说,环境隔绝描述的是一种现象:两个表面距离越近,所受光就越少,看起来就越暗。
以一个马体为例(请记住这个Dummy Pony,他将成为我们后文的首要模特):

他的环境隔绝效果如下:

马蹄和地面接触的地方因为距离极近,所以几乎是纯黑;下巴和脖子、耳朵和头间也有一大块阴影,嘴唇间也产生了比较暗的区域。
关于环境隔绝的原理,大致可以这么理解:

当一束光接近两个物体/表面的相接处,它将在两个物体之间频繁反射,每次反射都会有一部分能量被物体吸收,因此当它靠近物体接缝处时,能量(也就是亮度)较射入时就会变得非常低,对于眼睛来说就是变暗了。
Chapter 3.7 衰减(Fall off)
衰減的概念十分簡單,就是距離光線越遠,光強越低。
光線的衰減遵循反平方定律,也就是說光線的強度會隨著距離線性增加呈平方遞減。用I代表强度,d代表距离,那么:
更直观的图像理解如下图[2]:
实际生活中光线不光遵循反平方定律,而且衰减速度甚至在反平方定律之上,很大原因是空气溶液中的溶质加速了衰减。
在虚拟空间中,使用反平方定律会使得图像高光太强,暗处又容易死黑,所以大多数游戏引擎都使用一个结合了常量、线性和平方的线性方程来计算,偏向于折中。
到这里不知诸位有没有想到一个问题:太阳光是否遵循反平方定律呢?
简单来说,遵循。水星到太阳的距离大概是地球到太阳的五分之二,但其受到的辐射却是地球的六倍多。对于人来说感觉不到太阳光的衰减主要是因为太阳光的强度实在太高了, 加之人眼自带gamma调节,使得明暗对比不那么明显,也就很难感受到太阳光的衰减了。
说这些东西对画画用处不大,但不觉得这些东西很神奇么(笑)
Reference
[1] Unknown Photographer. "Gaube Lake", touropia. August 10, 2017. https://www.touropia.com/lakes-in-france/
[2] JOHANNES DAUNER, "Understanding the Inverse-Square Law of Light", petapixel, Jun, 2016, https://petapixel.com/2016/06/02/primer-inverse-square-law-light/
Chapter 3 光线
真正解释清楚光线是物理学的任务,这里我只进行粗略的、基于几何光学的讲解(事实是我的物理也基本上忘得差不多了)。因为用Illustrator做插图太慢,这里我就偷下懒直接画了,虽然不美观但意思差不了太多。
Chapter3.1 反射(Reflection)
反射可以说是最基础的光线传播形式了,虽说大多数物体都以漫反射为主,但漫反射其实可以理解为一堆反射的叠加。
反射基础形式如下图,N为表面法线(Normal)(法线说的是和表面垂直的虚拟线),入射光线和法线之间的夹角θ_1为入射角(θ读作Theta),θ_2为反射角,这两个角度数值相等。
知道了这个道理其实就能开始尝试画简单的反射面了,以下面的景色为例,取景面上半部分看到的是景色的直线传播,下半部分是平面反射(反射光线用虚线表示),看起来就像是右图的样子:
你可能注意到反射的下半部分颜色和直接传播的上半部分并不一样,这个问题会在菲涅尔部分讲到。
Chapter3.2漫反射(Diffuse)
在图形学为主的光传播中,我们认为任何一个细小平面都会产生反射,而漫反射就是无数这种细小平面的集合。因为各个细小平面的朝向都不一样,他们的法线也不一样,因此在入射光线方向一样的情况下,每个微小平面的反射光线方向都不一样,形成了漫反射。漫反射的颜色通常被视为物体固有色。
Chapter3.3 折射(Refraction)
3.3.1 折射原理
光线在不同介质中的传播速度(Speed)是不一样的,这个速度很大程度上造成了折射现象。大多数同学都知道折射,但不知道怎么判断光线的偏移情况,这里用一个比较low的办法教大家判断 (请注意里我非常不负责任的把波动光学硬挤成了几何光学,只是为了方便理解,请不要照单全收):
- 首先我们把一束光线分解成好几个“子光线”,这里我分了a1-a4四个子光线,他们从一个介质射向另一个介质,这里假设光在图中灰色介质中的传播速度更慢。当a1接触到图中灰色介质时,a4还在行进路途中-还需要走d1的距离才能碰到图中灰色介质;
- 当a4终于碰到灰色介质时,a1已经在灰色介质中走了一段路程d2,但是由于灰色介质中的速度慢,d2比d1要短;
- 此时整束光都已经进入了灰色介质,他们将再次以同样的速度传播,但此时因为d1和d2的距离偏差,他们已经不在之前那个方向上传播了,而是产生了偏移朝着新方向传播(图中棕黄色所示);
把a1、a2、a3和a4重新合到一起,整束光的传播就成了图中右侧的样子:
我们把折射光线和法线的夹角叫做折射角,假设光线在上边白色介质中的传播速度为v1,灰色介质中的传播速度为v2,那么:
我们把n1和n2叫做这两种物质各自的折射系数(Refractive index)。折射系数也可以写作:
其中c是光在真空中的传播速度,v是光线在该介质中的传播速度。
由(1)式可以看出,折射系数和速度成反比,也就是说折射系数越大,光线在该种物质中的速度越慢。关于如何判断折射系数的问题,比较简单的法则就是物体越致密,光线的速度越慢,这个原则适用于多数物体。对于不透明的物体,其实他们也有折射,但是折射光线在其中的衰减速度太快,几乎瞬间就没了。
此时可能有同学觉得,这事儿好像和数字绘画没什么联系啊?的确,数字绘画大多数情况下不需要在脑子里计算光线传播(虽然的确有一些画师能做到),但理解这些传播原理将带来潜移默化的好处。
对于折射,数字绘画中用到的主要不是它对光线的扭曲,而是其透明性。如果画面中的物体发生折射,那么它肯定在一定程度上是透明的,反之亦然,所以折射是表现透明物体的首要法则。
3.3.2 小结
到这里可以做一个小结。一束光从一种介质射到另一种介质上,将在平面上发生反射和折射:
(图中的字母都是随便取的,没有固定标准)IO为入射光线,OL为反射光线,OR为折射光线。θ1为入射角,θ2为反射角,θ3为折射角。在简单的几何光学中,我们认为当物体没有自发光时,反射和折射光的强度等于入射光的强度,也就是能量守恒(波动光学中能量守恒,但可见的光强度不一定相等)。
Chapter3.4 菲涅尔(Fresnel)
不知道看到这里诸位有没有注意到一个问题,既然反射和折射光的强度等于入射光的强度,那么有多少光是反射,多少是折射呢?
菲涅尔描述的就是这种现象,同一个物体表面,根据视角不同,反射和折射的比率也会发生变化。实际的菲涅尔方程很大程度上取决于光的偏振(Polarization)情况(波动光学内容),因此这里我直接跳过计算说结论了。
为了简化图像这里就不再用法线夹角了,而是用平面夹角,对于大多数材料,这个平面夹角越大,折射越强。以上图为例,θ1角度大于θ2,因此θ1看到的折射更多,θ2看到的反射更多。
以一个球为例,完全没有菲涅尔的黑球放在一个棋盘平面上大概长这样:
逐渐增大菲涅尔,可以看到球体出现反射:
这里其实可以把菲涅尔反射提取出来,单独看会发现它集中在物体边缘,也就是视线与物体表面夹角小的地方:
为了更形象的说明这个关系,以一个现实景色为例子:
Gaube Lake [1]
湖面距离观察者近的部分折射更多,看得见湖底的石头;远离观察者的部分反射更多,颜色多为远山和天空的颜色(因为湖面不是静止的,所以远部分的光线更多的是漫反射,水的这个特性和公路类似但效果相反)。
从菲涅尔还可以得到两个引理:
- 当光线垂直射入时,几乎不发生反射;
- 当光线与平面的夹角无限小时,几乎不发生折射;
其中引理2适用的情况不止无限小,根据不同材料,只要平面夹角低于一定阈值,光就不会折射,这也是光纤的原理。
Chapter 3.5 表面散射(Surface Scattering)
菲涅尔讨论了折射和反射的比重问题,是针对于光线从一种介质照射到另一种介质上。那么介质内的光线传播是稳定的么?对于大多数物体,这个答案是否定的,进入另一种介质的光线还可能在物体内部产生反射,然后离开这种介质,这种传播被称作表面散射,广义上有时也被叫做次表面散射(Sub-surface Scattering),俗称3S。
这么一听表面散射的概念似乎比较难理解,但生活中最常见的表面散射材质可以说就是人类皮肤了。皮肤的固有色一种饱和度非常低的红色,几近透明,其颜色主要就是由多层表面散射体现的,皮肤表面散射颜色介于暗红和棕绿之间。
把表面散射加入考虑反范围,我们的光线图变成了这样:
BC为反射光线,EF为穿过物体并射出的折射光线,BH为在物体内反射的折射光线,中间未标出的棕绿色是只进行了一次间接反即离开物体的折射光线。
这里我们认为造成表面散射的主要原因是物体成分的不均匀。表面散射现象明显的材质一般都类似胶体(Colloid)而非溶液(Solution),是具有两种或两种以上相态(Phase)的物体。
这里的散射和物理上的散射(Scattering)略有不同,我们关注的不是位势作用和轨迹,类似折射,表面散射对绘画最重要的不是其光线传播方式,而是其对画面带来的改变。对于具有次表面散射的物体,光线在其中反射会导致光线的强度和色彩都发生改变,一个显著特征就是明暗交界线出现显著地色相偏移,除此之外暗处有辉光感、较普通材质来说死黑明显减少,这几点将在后文着色部分详述。
进入下一章节之前简单看次表面散射对皮肤表现的影响。
如果只考虑固有色,皮肤大概会是这个样子:
看起来缺乏生机,但稍微改一下局部色相,使得明暗过渡的同时色相从黄到红到棕,就能使得材质有机感增强。
Chapter 3.6 环境隔绝(Ambient Occlusion)
环境隔绝这个词主要用于计算机图形学,据称最早来自工业光魔(Industrial Light&Magic),英语原文描述的比较容易理解,但我不太清楚中文是否有得体的翻译,所以还是采用了早期的直译。用最简单的话说,阴天或没有单一强光源时,物体的阴影就是环境隔绝。
更加详细的说,环境隔绝描述的是一种现象:两个表面距离越近,所受光就越少,看起来就越暗。
以一个马体为例(请记住这个Dummy Pony,他将成为我们后文的首要模特):
他的环境隔绝效果如下:
马蹄和地面接触的地方因为距离极近,所以几乎是纯黑;下巴和脖子、耳朵和头间也有一大块阴影,嘴唇间也产生了比较暗的区域。
关于环境隔绝的原理,大致可以这么理解:
当一束光接近两个物体/表面的相接处,它将在两个物体之间频繁反射,每次反射都会有一部分能量被物体吸收,因此当它靠近物体接缝处时,能量(也就是亮度)较射入时就会变得非常低,对于眼睛来说就是变暗了。
Chapter 3.7 衰减(Fall off)
衰減的概念十分簡單,就是距離光線越遠,光強越低。
光線的衰減遵循反平方定律,也就是說光線的強度會隨著距離線性增加呈平方遞減。用I代表强度,d代表距离,那么:
在虚拟空间中,使用反平方定律会使得图像高光太强,暗处又容易死黑,所以大多数游戏引擎都使用一个结合了常量、线性和平方的线性方程来计算,偏向于折中。
到这里不知诸位有没有想到一个问题:太阳光是否遵循反平方定律呢?
简单来说,遵循。水星到太阳的距离大概是地球到太阳的五分之二,但其受到的辐射却是地球的六倍多。对于人来说感觉不到太阳光的衰减主要是因为太阳光的强度实在太高了, 加之人眼自带gamma调节,使得明暗对比不那么明显,也就很难感受到太阳光的衰减了。
说这些东西对画画用处不大,但不觉得这些东西很神奇么(笑)
Reference
[1] Unknown Photographer. "Gaube Lake", touropia. August 10, 2017. https://www.touropia.com/lakes-in-france/
[2] JOHANNES DAUNER, "Understanding the Inverse-Square Law of Light", petapixel, Jun, 2016, https://petapixel.com/2016/06/02/primer-inverse-square-law-light/
