1.4.1 物理世界中的光影关系
我们先通过一个示意图来说明真实物理世界的光影关系,如图1-20所示。这是下午3点左右的光影关系,可以看出,主要光源是太阳光,在太阳光通过天空到达地面及被地面反射的这一过程中,就形成了天光,而天光也就成了第二光源。
图1-20 真实物理世界的光影关系(下午3点左右)
从图1-20中可以看出,太阳光产生的阴影比较实,而天光产生的阴影比较虚(见球的暗部)。太阳光类似于平行光,所以,产生的阴影比较实;而天光是从四面八方反射到球体,没有方向性,所以,产生的阴影虚而柔和。
球体的亮部(就是太阳光直接照射的地方)同时受到了阳光和天光的作用,但是,由于阳光的亮度比较大,所以,它主要呈现的是阳光的颜色;球的暗部没有被阳光照射,它只受到了天光的作用,所以,它呈现出的是天光的蓝色;光线照射到比较绿的草地上后,反射出带绿色的光线,影响到白色球的表面颜色,形成了辐射现象,使球的底部呈现出带有草地颜色的绿色。
在球体的暗部,还可以看到阴影有着丰富的灰度变化,这不仅仅是因为天光照射到了暗部,更多的是由于天光和球体之间存在着光线反射,球和地面的距离,以及反射面积影响着最后暗部的阴影变化。
真实物理世界里的阳光阴影为什么会有点虚边呢?图1-21所示为真实物理世界中的阳光阴影的虚边。
图1-21 真实物理世界中阳光阴影的虚边
在真实物理世界中,太阳是个很大的球体,但是,它离地球很远,所以,发出的光到达地球后,就近似于平行光了,但是,就因为它实际上不是平行光,所以,地球上的物体在阳光的照射下会产生虚边的阴影,而这个虚边也可以近似地计算出来:(太阳的半径/太阳到地球的距离)×物体在地球上的投影距离≈0.00465×物体在地球上的投影距离。从这个计算公式可以得出,一个身高1700mm的人,在太阳照射夹角为45°的时候,他头部产生的阴影虚边大约为11mm。根据这个科学依据,我们就可以用VRay的球光来模拟真实物理世界中的阳光了,只要控制好VRay球光的半径和它到场景的距离就能产生近似真实物理世界中的阴影了。
为什么天光在白天的大多数时间里是蓝色的,而在早晨和黄昏却不一样呢?
大气本身是无色的,天空的蓝色是大气分子、冰晶、水滴和阳光等共同创作的景象。太阳发出的白光是由紫、青、蓝、绿、黄、橙、红光组成的,它们的波长依次增加。当阳光进入大气层时,因为波长较长的色光(如红光)的透射力强,所有,它们能透过大气,射向地面;而波长短的紫、蓝、青色光,碰到大气分子、冰晶、水滴等时,就很容易发生散射现象,被散射了的紫、蓝、青色光布满天空,使天空呈现出一片蔚蓝。图1-22所示为蔚蓝的天空。
图1-22 蔚蓝的天空
在早晨和黄昏的时候,太阳光穿透大气层到达观察者所经过的路程要比中午的时候长得多,会有更多的光被散射和反射,所以,光线也没有中午的时候明亮。在到达被观察的地方之前,波长较短的蓝色和紫色的光就几乎被散射了,只剩下波长较长,穿透力较强的橙色和红色的光,所以,随着太阳慢慢升起,天空的颜色是从红色变成橙色的。图1-23所示为早晨的天空色彩。
图1-23 早晨的天空色彩
当落日缓缓消失在地平线以下时,天空的颜色逐渐从橙红色变为蓝色。即使太阳消失以后,贴近地平线的云层仍然会继续反射着太阳的光芒,由于天空的蓝色和云层反射的红色太阳光融合在了一起,因此,较高天空中的薄云会呈现出红紫色,几分钟后,天空会充满淡淡的蓝色,它的颜色会逐渐加深并向高空延展。图1-24所示为黄昏的天空色彩,其中的暗部呈现蓝紫色,这是因为蓝、紫光被散射以后,又被另一边的天空反射回来。
图1-24 黄昏的天空色彩
下面,来了解一下光线的反射,当白光照射到物体上时,物体会吸收一部分光线并反射一部分光线,吸收和反射的多少取决于物体本身的物理属性。遇到白色的物体时,光线会全部被反射;遇到黑色的物体时,光线会全部被吸收(当然,真实物理世界中找不到纯白或纯黑的物体),也就是说,反射光线的多少是由物体表面的亮度决定的。当白光照射到红色的物体上时,物体反射的光子就是红色(其他光子都被吸收了)。当这些光子沿着它的路线照射到其他表面时将呈现红光,这种现象叫辐射,因此,相互靠近的物体颜色会因辐射而相互影响。
图1-25所示为橘红色木头在光线的反射下,投射出木头的颜色并将其辐射在地面上。用VRay渲染效果图的时候,我们常会遇到溢色问题,这就需要对材质进行处理。
图1-25 光线的反弹