第二部分原理: 材质的各种属性是如何模拟现实的光学物理现象的呢?这必须从物理学上谈起。
一、光与物质的交互
光是一种横向传播的电磁波,电磁波的波长范围非常广,但只有390~760nm之间的一段波谱是人眼可见到的,也就是在图形学里对渲染着色起作用的部分。另外因为光有波粒二象性的缘故,有时候我们在图形学里也会把光做为光子(photon)来处理。
1、当光投射到传感器(眼睛,照相机等)上时,颜色和亮度就会被吸收并感知,而光与物质交互后被感知的,就是物体的颜色。
2、均匀介质
内部密度相同的物质,意味着它有唯一的折射率,对应透明的均匀物质来讲(如水,玻璃),光通过时,并不会改变光的颜色或强度。
3、光被吸收(absorption)。
而当物质对某一种可见光谱有吸收率的时候,那么,光就会随着在物质内的传播距离而逐渐被吸收,而光的方向并不发生改变。
4、非均匀物质
当非均匀物质内部的折射率非常突然的时候,这时就会发生散射(Scattering)现象,光会被分割为多个方向,但光的总量并不会发生变化。
5、自发光”emission“。 物质还可能因为其他能量发出新的光。
总之,光与物质交互的三种方式,吸收,散射,发光。
二、光与平面的交互
光与物质交互发生在物体表面时,关于光与空气和物质之间的散射效果。这个时候平面散射光会分为两部分:一部分进入平面的部分(折射 ,在物体内部传播中被吸收或散射),另一部分从平面出去的部分(反射 )。
1、镜面反射: 一个假设完美无限光学平坦的平面(简称光学平面 )反射效果,平面两侧的空气和物体有各自的折射率。(注意模型底下反射的是地面)
2、非镜面反射 :但实际上,平面大多都不是光学平面(除了镜子或镜头等),而是一种微几何体(Microgeometry),表面都会有一些比可见光波长要大的不规则凹凸,但又小到无法覆盖一个像素或者采样点,所以,我们就把这种非光学平面 。
3、光滑 roughness
平面相对平滑时,表面方向的变化也比较轻微,从而反射光的方向变化也较小,有了较清晰的反射。而下面的表面粗糙,表面方向的变化范围也较广泛,反射光的方向变化也比较大,出现了模糊的反射。
4、漫反射光与镜面光(diffuse and specular)
从平面直接反射的部分称为镜面反射光(Specular),来源于拉丁语的“Mirror”,镜面光的颜色,通常就是灯光的颜色,只有照射在金属上才会改变颜色(实际是金属吸收了特定波长的光),传入到物体内部,而经过折射,被材质吸收(转变为热能),或者内部进行散射,一些散射光最终会重新返回从平面折射出来,并被摄像机或眼睛所捕捉到,称为漫反射光(Diffuse)。
漫反射光被物质吸收并散射后,会成为不同波长的光,这也就给予了物体颜色,比如物体吸收了蓝色以外的光,那物体就是蓝色的,而因为散射的混乱比较均匀,从每个方向看起来都是一样,所以这点和镜面光不一样。也可以使用这个名字albedo来描述。
5、金属和 非金属
物体内部的折射光的作用,取决于物体内部的组成,内部组成的不同,可以分为,金属(metal)导体,电介质(Dielectrics)绝缘体和半导体(Semiconductors ),在处理物体时简单的分组为金属和非金属就可以了。金属会吸收所有的折射光,而且通常会被绝缘体的反射率要高,通常的反射率要达到60%~90%,而绝缘体则是0%~20%,反射率高,就防止了入射光被吸或折射,这样,金属就有了”闪亮“的外观。
金属的折射光能量都立刻被自由电子吸收,而非金属(绝缘体),光会在内部进行吸收和散射活动,最后,一些折射光会通过散射,重新从入射平面反方向射出
6、非金属的折射光会进行散射
导体的反射会跨越光谱,所以反射是有颜色的,虽然颜色反射在导体里比较罕见的,但在一些日常的材质里(金,铜,黄铜)还是可以看到这种效果,而绝缘体的反射通常是他们的本来颜色,因为金属会吸收所有的穿透光,也就没有任何漫反射(diffuse)部分,但金属氧化的部分和一些表面残留物还是会散射少量的光。不同材质的漫反射颜色,金属为0。
7、次级表面散射 (Subsurface Scattering)
从前面的图中,可以看到折射后的散射光从平面不同的点发射出来,和原始的入射点的距离也各不相同,可以统称为次级表面散射光,根据散射出的距离和入射点像素的大小的关系,可以分为两种情况:
如左图所示,当像素的尺寸大于入射到出射点的距离时,这个距离就可以被忽略,可以认为这个平面散射出的光和入射光是在相同点上,也就是右图的样子,也就是我们常说的漫反射。
当像素小于出射到入射距离时,每个点的着色就会收到其他光入射到其他点的影响,也就是常说的“次级表面散射”技术,很重要的一点是,它和普通的漫反射着色是一种物理现象(都是折射光的次级表面散射),唯一不同的就是散射的距离与观察点大小的关系,一个通常被认为是“次级表面散射”的表现,当在较远的距离观察时,就可以被认为是漫反射着色(例如远距离角色的皮肤),而“正规的漫反射着色”在很近距离观察时,也会有次级表面散射的效果。
8、Fresnel现象
菲尼尔表现的是材质的反射率和入射角(也就是光源入射向量和平面法线向量的夹角)的对应关系,也就是说,入射光的角度越大,反射率也会越强。以水面为例,正常入射事只有3%的反射,而水平时则几乎到100%。
下图是水折射的菲尼尔现象,看近处和远处对比。离观测者越近折射越强烈,越远越模糊。
下图是水表面反射菲尼尔现象,离观测者越远反射越强烈,越近越模糊。
8、各向异性
前文已经提到了表面的微几何体。从宏观来看,在我们渲染模型网格时,使用凹凸贴图或法线贴图就可以描述表面小的细节。 但还是有一些微小的凹陷,裂缝或突起,而用肉眼是很难看清楚的,而且这些微几何体是有规律分布的,它小到连正常大小的法线贴图也无法来表现,虽然肉眼无法看到,但这些微观特征,还是对Diffuse和Specular产生了影响。光虽然向四处反射,但是有规律的,在模型表面有的地方强,有的地方弱,有的没有,这就是各个方向不同。