散射是指光子与空气中的分子或是悬浮粒子弹性碰撞之后,改变行进方向。生活中常见的散射可概分为两种:瑞利散射(Rayleigh scattering)和米氏散射(Mie scattering),示意图如图。

图解:图中的横轴是粒子直径与波长长度的比值,纵轴是经过数据标准化后的散射强度。蓝色区域是粒子直径比波长小很多的瑞利散射,波长越短,散射越强,而且散射角度较大;黄色区域是粒子较大的米氏散射,散射强度和波长之间没有固定关系,且大部分散射沿着阳光原本行进的方向前进。
瑞利散射是指当光照到直径比光波长小很多的粒子( 大气中的氧分子和氮分子 )时,光会向四面八方散射,而且光的波长越短,散射强度越大(散射强度会和波长的四次方成反比);而米氏散射是指光照到直径跟光波长相当,或是比光波长还要大的粒子(烟雾,液滴,尘埃)时,光主要会沿着原本行进的方向散射。但与瑞利散射不同,米氏散射的散射强度和波长并没有固定关系。 空气中的微粒会造成米氏散射,而且当微粒大小与波长相近时,会有共振增强散射的现象。
来自天空的光线经过大气的瑞利散射多是蓝色,来自太阳的光线其中波长较短的蓝紫光将被散射,只有波长较长的红橙光到达人眼(人眼观察到的天空颜色多是散射光,太阳光则是直射光);而水滴组成云与可见光的波长大小相当,因此云多是米氏散射造成的白色;
平常的天空之所以看起来是蓝色,就是受瑞利散射影响。太阳光由许多不同波长的光混合而成,当太阳光进到地球的大气层时,就会撞击到大气层中的空气分子,这些空气分子的大小约为1奈米(1奈米=10^-9m),比可见光的波长 小许多,因此空气分子受到太阳光照射后,会以瑞利散射的形式重新把光散射出去。太阳光中波长较长的红、橘光散射的强度比较弱,往外散射的光会以短波长的蓝、紫光为主。再加上人眼对紫光的敏感度较低,所以我们平时看到的天空会是蓝色的。
而当我们直接观察太阳时,会觉得太阳看起来偏黄,是因为短波长的光向外四面八方散射后,留下较长波长的光所致。也就是说,本来是白色的太阳光,经过大气层之后,短波长的蓝色散射较强,可以从天空的各个方向进到我们的眼睛,造成我们看到蓝色的天空。而太阳本身因为蓝色光被散射掉,因此呈现互补色,也就是黄色。
这个现象在清晨与傍晚格外明显,因为此时太阳光斜斜射向地球,穿过的大气层更厚、让更多的空气分子散射,让较短波长的蓝色到绿色光都被散射掉,使得太阳本身变成了橘红色。有兴趣的读者可以自己用一个水箱加奶精,配合手电筒即可看到类似的现象。从图二,也可以看到水箱侧面散射出来的光偏蓝色,而穿过去的光则变成橘黄色。
更复杂的物理学依据及shader实现:unity3d shader之实时室外光线散射(大气散射)渲染
