天空不同颜色的秘密——大气光散射现象(作者:李奕晓 上海市浦东新区万科实验小学)

来源于:知识就是力量
发布时间:2025-02-06 15:23:05
    小字号

天空不同颜色的秘密——大气光散射现象

作者:李奕晓(上海市浦东新区万科实验小学)

摘要:天空颜色的变化一直吸引着人们的关注。经过学者们的不断研究,我们知道该变化主要由大气中的散射效应引起,其中是Rayleigh 散射和Mie散射是天空颜色变化的重要影响原因。为满足天空颜色变化的可视化模拟,本研究利用光线追踪技术对大气中光的传播和散射进行了研究,并开发了计算天空颜色的算法。本研究将大气数据与Rayleigh散射和Mie散射理论相结合搭建了基于算法的核心模型,可通过调整太阳照射角度、气溶胶含量等参数,模拟不同天气条件下的天空颜色变化。模型成功生成了日出、日落以及全天不同时段的天空颜色图像,并通过与现实对比验证了模型的准确性和有效性。本研究可以根据具体的气象条件调整模型参数,提供定制化的天空颜色预测。在视觉模拟和虚拟环境创建等领域具备广泛的应用潜力。 

关键词:大气散射;Rayleigh散射;Mie散射;光线追踪技术;天空颜色计算

        1 研究背景
        天空的颜色变化主要由大气中的散射效应决定。其中Rayleigh散射和Mie散射起着关键作用。Rayleigh散射影响与光波长相同或更小的空气分子和颗粒,使短波长的光(如蓝光)比长波长的光(如红光)散射得更强,故天空看起来是蓝色的。Mie散射则影响较大的颗粒,如水滴和尘埃。这种散射对光的波长不敏感,常导致雾天或阴天的天空呈灰色或白色[1]。
        精确模拟散射机制可以帮助科学家和工程师更好地理解大气条件如何影响光的传播,对于气象预报、环境监测和气候研究等多个应用领域至关重要。高质量的天空颜色模拟在视觉效果产业中也有较高的应用潜力,如需通过真实再现自然景观来提升用户体验的电影制作、视频游戏开发和虚拟现实方面。
        本研究构建了基于物理的数学模型和开发算法,能够处理复杂的散射计算,并运用光线追踪技术对大气中光线的传播路径进行模拟,从而根据环境变量的不同对天空的颜色进行相应的模拟和呈现。本研究为通过精确计算和模拟大气中的光散射现象来预测和再现天空的颜色变化提供了一种有效的工具。
        2 研究现状
        现有大气光散射模型(Atmospheric Scattering Model,ASM)的研究,通常基于Rayleigh散射和Mie散射理论,针对不同大小的气溶胶粒子和大气条件的光散射行为进行建模。主 要关注如何准确模拟和预测光在大气中的散射过程,并为各种应用重建或模拟天空和环境的视觉效果。
        相关学者也在持续推动这一领域的发展。顾振飞等[2]开发了结合光吸收和大气散射模型的可解释图像去雾网络,研究表明除了传统的ASM外,引入光吸收系数可以改善图像去雾算法中的暗淡效应。刘春友等[3]研究了大气散射模型与关联帧补偿的视频图像去雾及增强技术,进一步扩展了ASM在动态视频环境下的应用范围。
        结合主流研究方法、参考研究现状,本课题旨在进一步优化天空颜色的计算模型、引入更复杂的光散射和吸收机制、提高模拟的准确性和视觉效果。本研究结果既可以扩展到图像处理和计算机视觉应用,也可应用于气象学和环境科学研究。
        3 研究过程
        3.1基本概念
        (1)Rayleigh 散射Rayleigh 散射也叫“分子散射”,是一种光学现象。当粒子的尺寸远小于入射光波长(小于波长的十分之一)时,散射光的强度在不同方向上不相同。这种强度与入射光波长的四次方成反比,因此被称为Rayleigh散射。由于短波长的光(如蓝光)比长波长的光(如红光)散射更强,而短波中蓝光的能量最大,大气分子会将蓝光强烈散射到各个方向。晴朗天气时,大气中的粗颗粒较少,以分子散射为主,所以天空呈现出蔚蓝色。Rayleigh散射是各向同性的,这意味着光线可以均匀地向各个方向散射。
        (2)Mie散射Mie散射发生在光的波长与散射粒子的尺寸相近或更大时。大气中的水滴和尘埃等颗粒通常会引发这种散射。与Rayleigh散射不同,Mie散射对波长的依赖性较弱。它能够解释更复杂的现象,比如日出和日落时天空的红色和橙色。Mie散射具有较强的方向性,散射的光线更紧密地沿着入射光的方向传播。这种特性使得我们能看到从黄昏到黎明天空中逐渐变化的颜色。
        (3)光线追踪算法光线追踪算法是一种用于创建逼真视觉效果的技术,通过模拟光线从眼睛发出的路径并计算其在场景中的传播来生成图像。在模拟过程中,算法追踪每条光线与场景物体的交互,包括反射、折射和散射。对于天空颜色的模拟,光线追踪结合了Rayleigh散射和Mie散射理论,详细计算光线在大气中的散射和吸收。这种方法可以精确再现天空的颜色变化,同时也适用于建筑渲染和视觉特效等需要复杂模拟的场景。

        3.2技术路线
        本研究的技术路线由以下五个部分组成:
        (1)输入模块负责接收太阳的仰角和方位角等参数,为模拟过程提供初步数据。
        (2)大气模型初始化模块基于散射理论设定大气层的散射系数和光学厚度,为光线的传播提供物理基础。
        (3)光线追踪模块计算光线从观察者位置出发穿过大气层直至到达太阳的路径,并模拟光线与大气分子的散射过程。
        (4)颜色计算模块根据散射计算的结果生成图像中每个像素的颜色值。
        (5)输出模块负责将最终生成的天空颜色图像展示出来,完成整个天空颜色模拟的过程。

图3-1结构框图

        3.3光散射理论的数学模型
        研究光散射现象是模拟天空颜色过程中必不可少的组成。本研究主要参考光散射理论的数学模型搭建预测和解释天空颜色变化的框架,研究涉及两种对不同类型大气颗粒有不同影响的散射机制:Rayleigh散射和Mie散射。
        (1)Rayleigh散射
        Rayleigh散射主要影响空气分子以及其他小于或等于光波长的粒子,是一种弹性散射,其中光的散射强度与波长的四次方成反比,使得短波长的光(如蓝光)比长波长的光(如红光)散射得更强。Rayleigh散射的数学表达式为:
     
        其中:

        Ι(λ,θ)是在波长λ和散射角θ下的散射强度。
        I0是入射光的强度。
        Ns是单位体积内的散射粒子数。
        N是单位体积内的总粒子数。
        σs(λ)是单位粒子的散射截面,它可以表示为:

        其中d是粒子的直径,n是介质的折射率。
        (2) Mie散射
        Mie散射描述了大气中较大颗粒对光的散射。与Rayleigh散射不同,Mie散射对光的波长依赖性较弱,并且其散射模式更复杂,通常需要数值方法来解析。Mie散射的表达式涉及解决Mie散射方程,但简化后,其近似表达式为:

        其中:
        r 是散射粒子的半径。
        其他参数的定义与Rayleigh散射相同。
        结合两种散射理论可以解释和预测在不同大气条件下天空的颜色。
        3.4向量类与光线追踪算法
        本研究设计了一套综合的光线追踪框架精确模拟天空颜色,用于对空间向量的操作和光线传播的详细计算。
        (1) 向量类的实现使用Vector.py中的向量类进行三维空间向量的处理:
        ①向量表示与操作
        笛卡尔坐标:由坐标(x,y,z)表示向量v,用于表达三维空间中的点或方向。
        球坐标:用(r,θ,Ø)表示向量,用于处理与原点的径向距离r、极角θ(与z轴的夹角),以及方位角Ø(在xy平面上的角度,相对于x轴)。
        ②坐标转换公式球坐标到笛卡尔坐标的转换公式:

        将以原点为中心的球形描述转换为直角坐标系统,用于进行光线追踪中的方向设置。
        ③ 笛卡尔坐标到球坐标的转换公式:

        将直角坐标系统转变为以角度和距离描述的系统,用于分析光线的传播方向。
        (3)向量运算
        ①向量加法:u+v

可通过向量加法计算光线在空间中的新位置,从而进行光线经过散射后的路径计算。

②向量点积uv

可通过向量点积计算两个向量间的角度关系或其在同一方向上的投影长度,从而确定光线方向和散射角度。

        (4)光线追踪算法
        光线追踪是一种通过模拟光的传播路径来生成图像的技术,常用于计算物理和光学模拟中。本研究利用光线追踪来模拟因大气散射造成的天空颜色变化。
        ①光线追踪的基本原理光线追踪算法的核心原理是模拟光线从发射点沿直线路径传播,直到它与对象(本研究中为大气层)相交。从而精确计算光线与大气层交互的效果、模拟出天空的颜色变化。
        ②数学描述

光线的表示:光线可以通过起点o和归一化的方向向量d表示。

其中t是一个标量,表示光线沿d方向的距离。

光线与大气层的交互:模拟中,假设大气为多层同心球壳,每层具有不同的散射特性。光线与每层的交点由下式确定:

        其中R是大气层的半径。通过该式可计算光线与大气层相交的具体位置t
        散射计算:在每个交点,根据散射理论(Rayleigh散射和Mie散射),计算散射的强度和方向。

        (5)光线追踪的实现
        ①初始化:对于每一条光线,确定其起点(通常是观察者的位置)和方向(基于视场角和图像平面的位置)。
        ②光线传播:计算光线与大气层的交点。计算光线在每个交点计算散射和吸收。
        ③颜色计算:根据散射和吸收的结果,计算到达观察者眼睛的光的颜色和强度。应用光谱到颜色的映射,以生成最终图像的颜色值。
        ④模拟算法的开发 :本研究为了模拟天空颜色的变化,开发了基于Python的算法。该算法结合了光线追踪技术和大气光散射理论(Rayleigh散射和Mie散射),用于精确模拟在不同大气条件下观察到的天空颜色。        
        ⑤输出结果:生成的图像反映了天空颜色的变化,其中每个像素的颜色由其对应方向上的光线追踪结果确定。
        3.5实验设计与结果
        (1) 算法实现本研究为了模拟天空颜色,整合了光散射的理论和实际大气数据开发了一个基于Python的光线追踪模型。关键步骤包括初始化大气层参数、执行光线追踪、计算散射和吸收,以及生成颜色的输出。
        ①初始化参数根据输入的地理位置、日期和时间确定太阳的位置后,根据大气条件(气温、湿度、大气压强及气溶胶含量)初始化大气层的模型。分析每一层的厚度、光学性质(如散射和吸收系数)和颜色影响

图3-2初始化参数代码图

        定义太阳的位置并通过‘Vector’类实例化太阳方向。使用球坐标系‘sun_altitude’和‘sun_azimuth’分别代表太阳的高度角和方位角。在‘wavelengths’列表中定义光的波长和相应的太阳辐射强度定义,并通过三个元组分别对应红光、绿光和蓝光的波长及其相对辐射强度。设置图像的尺寸、色深、视场角以及曝光和伽马校正参数;基于图像的宽度、长度和视场角计算每个像素的射线方向,初始化‘shoot_angles’用于存放射线方向。
        ②光线追踪和散射计算
        算法计算从观察点出发至该方向上无限远处的光线路径,沿途模拟光线与不同大气层的交互,包括Rayleigh散射和Mie散射的影响。并根据光线与粒子的相交角度和波长计算散射强度。

图3-3光线追踪和散射计算代码图

        在‘do_pixel’函数中实现光线追踪过程。针对设定的每种波长和辐射强度,计算每个像素在这种波长下的光强度。通过调用‘main_cycle’函数模拟光线从地球表面出发,经过大气层,并计算光线与大气的相互作用,包括散射和吸收。‘main_cycle’函数返回该像素在特定波长下接收到的总光强度。对每个像素点,考虑色深影响,对每种颜色重复计算,累加结果以获取最终的光强。
        ③颜色合成
        根据散射计算的结果、综合光线的色散效应,计算每个像素的颜色值。利用色彩空间转换将计算得到的光谱数据转换为RGB颜色模型,用于图像显示。

图3-4颜色合成代码图

        在‘do_pixel’函数中的最后通过色调映射实现颜色合成。使用基于物理模型的色调映射方法:
        (一)使用公式‘1 - np.exp(-sun_emit * intensity * exposure)’计算色调映射。
        (二)对结果应用伽马校正‘(1 / gamma_corr)’来调整亮度,使其适应人眼对亮度的非线性响应。
        (三)使用三维‘numpy’数组‘image’ 存储得到的每个像素的颜色值,并用来生成和显示图像。
        (四)使用‘matplotlib’库将生成的图像显示并保存为‘.png’格式。
        (2)模拟结果
        模拟生成的图像能够展示在特定条件下的天空颜色,如日出、日落和不同天气状况下的天空颜色变化。
        ①日出和日落模拟
        (一)日出模拟在日出时,模拟的天空呈现出红色和橙色的渐变。经研究已知这种颜色的变化是由于太阳的低角度和大气层中的Rayleigh散射以及Mie散射共同作用的结果。模拟过程中通过调节气溶胶浓度和太阳角度,从深红到鲜艳橙色,可以观测不同气候条件下的颜色变化。

图3-5日出模拟图

        (二)日落模拟
        日落时,天空颜色从明亮的橙黄色逐渐过渡到深红色和紫色,反映了太阳位置的变化和光程长度增加对散射效应的影响。颜色的变化体现了光在穿越更多大气层时散射和吸收的复杂性。

图3-6日落模拟图

        (2)全天模拟
        ①清晨模拟清晨的模拟展示了天空从深蓝色逐渐变为明亮的蓝色,这是由于太阳升起时Rayleigh散射对短波长光的散射作用减弱而导致的。

图3-7清晨模拟图

        ②正午模拟
        到了正午,由于太阳高悬,散射最小。天空表现为一种鲜明的蓝色,反映了Rayleigh散射在直射阳光下的典型效果。

图3-8正午模拟图

        ③黄昏模拟
        黄昏时,天空的颜色再次经历变化,由明亮的蓝色逐渐变为橙色和红色,特别是在太阳接近地平线时变化尤为明显,显示了Mie散射在较长光程中的显著效果。

图3-9黄昏模拟图

        日出、日落、清晨、正午和黄昏的模拟图像既增加了对大气光散射现象的认识,又为气象、环境科学提供了宝贵的视觉材料,同时也为视觉艺术提供了宝贵的实物材料。通过对本研究模型参数的调整,可以模拟天空在不同环境条件下观测到的颜色变化,进一步的验证了模型的精确性和实用性。
        4 研究结论
        4.1讨论
        (1)模拟结果分析与实际观察数据比较,现实中的天气变化与本研究中模拟的结果高度一致。特别是模拟日出和日落时天空颜色变化与现实情况一致。本研究经过对气溶胶浓度太阳角度和其他大气条件进行细致的调整,对特定时刻的天空颜色进行精确再现,从而验证了模型的准确性。
        (2)技术创新和局限
        ①技术创新:本研究运用先进光线追踪技术和大气散射理论相结合,将Rayleigh散射和Mie散射模型进行整合,产生了更具视觉效果的模拟结果。本研究开发的基于Python的算法框架在模拟的灵活性和用户交互性上都有很大的提高,使用户可以对模型参数进行更具体的调整,以满足其特定需求。
        ②局限性:本研究模型在大多数条件下都表现良好,但在极端气候条件下,如极高或极低的气溶胶浓度情况,其预测精确度可能受到限制。当前模型主要侧重于视觉效果的模拟,对于大气中复杂化学反应的直接模拟能力有限,这可能会影响其在更广泛环境科学领域的应用。
        (3)未来研究方向
        ①模拟更复杂的大气现象未来的研究将通过整合气象模型和实时气象数据,提升模型的动态预测能力,使其能够实时反映大气条件变化对天空颜色的影响。
        ②算法优化与高性能计算通过不断对算法和计算资源进行优化,可获得更快的运行速度和更高的运算效能,从而提升模拟的实时性和可扩展性。随着机器学习方法的不断发展,可使用机器学习技术对大气散射参数进行智能预测和优化,以降低对已有经验参数的依赖,并提高模型的自适应能力和普适性。
        4.2结论
         本课题综合应用光散射理论和光线追踪技术,成功开发出一个用于模拟天空颜色变化的高精度算法。研究既确立了天空颜色变化的数学模型,又从实际出发验证了模型的有效性和精确性。经验证,本研究模拟结果与实际观测数据高度一致,为预测日出日落以及全天不同时间段天空颜色变化提供了可靠的依据。本课题将Rayleigh散射与Mie散射的理论结合在一起,提供了用户友好的模拟环境,使用户能够根据特定的气象条件对模型参数进行调整,从而进行定制化的天空颜色预测。本研究成果在气象学环境科学视觉艺术媒体制作等领域具有十分重要的实用价值。
参考文献
[1]王亚伟.光散射理论及其应用技术[M].科学出版社,2013.
[2]顾振飞,陈灿,林国峰,王奔,药玮,于千傲.结合光吸收和大气散射模型的可解释图像去雾网络[J].传感技术学报,2024,37(05):857-861.
[3]刘春友,齐平.大气散射模型与关联帧补偿的视频图像去雾及增强[J].信息工程大学学报,2024,25(02):167-174.

 责任编辑:李银慧