一、FRED散射基础:从现象到模型

各位工程师朋友,大家好。我是你们这门课的老朋友。今天咱们正式进入FRED散射的世界。说实话,散射这个事儿,在光学设计里经常被当成“麻烦精”。但你想过没有——没有散射,你连这行字都看不见。为什么?因为光线照到纸上,靠的就是散射。

好,咱们不扯远了。这一章,我带你从三个角度把散射的底摸清楚:它到底是什么现象、它在系统里扮演什么角色、以及FRED怎么给它分类。嗯,这部分是后面所有实战建模的根基,别跳过。

1.1 散射现象概述

散射,说白了就是光碰到“不平整”的东西后,不走直线了。你想想看,一束平行光打到理想镜面上,反射光还是平行的——这叫镜面反射。但如果打到一张磨砂纸上,光就朝四面八方乱跑,这就是散射。

为什么会这样?因为真实表面不是完美的。微观上总有起伏、颗粒、划痕。光波的波长跟这些微观结构的尺寸差不多时,就会发生干涉、衍射,最终表现为散射。

核心要点:散射的本质是光与物质微观结构的相互作用。只要表面粗糙度RMS值大于λ/100,散射就不能忽略。

我在做激光雷达项目时遇到过一件事:一个反射镜,设计时按理想镜面算,结果实测效率掉了15%。查了半天,发现是镀膜工艺导致的微粗糙度。从那以后,我养成了一个习惯——只要涉及能量分配,必看散射数据。

散射不光发生在表面。材料内部也有。比如玻璃里的气泡、杂质、折射率不均匀,都会引起体散射。你看到的牛奶是白色的,就是因为脂肪颗粒对可见光的强烈体散射。

散射类型 发生位置 典型原因 FRED中对应模型
表面散射 光学元件表面 粗糙度、划痕、污染 ABg、Harvey-Shack、BSDF数据
体散射 材料内部 颗粒、气泡、折射率起伏 体散射模型、Mie散射
薄膜散射 镀膜层界面 膜层粗糙度、微裂纹 多层BSDF叠加

1.2 散射在光学系统中的作用

很多新手觉得散射就是坏事。其实不然。我把它分成两类来看:

有害的一面:

  • 能量损失:散射光偏离设计光路,导致到达探测器的能量减少。我见过一个红外系统,就因为镜筒内壁散射太强,信号直接淹没了噪声。
  • 杂散光:这是最头疼的。散射光进入探测器,形成鬼像、光晕、背景噪声。做航天光学的人,80%的时间都在跟杂散光较劲。
  • 对比度下降:投影系统里,散射光会让暗场变亮,对比度直接崩掉。

有益的一面:

  • 照明均匀化:LED灯具里的扩散板,就是靠散射把点光源变成面光源。
  • 显示技术:LCD背光模组,靠散射层实现均匀照明。
  • 遥感探测:大气散射是遥感信号的主要来源,没它你什么都测不到。

我的经验:判断散射是好是坏,就一条标准——它有没有干扰到你关心的那部分光路。做成像系统,散射基本是敌人;做照明系统,散射往往是朋友。

1.3 FRED散射模型分类

FRED的散射模型库,说实话,是我用过的光学软件里最全的。它把散射模型分成了三大类。我画了张图,帮你快速建立整体认知。

FRED散射模型分类体系 FRED散射模型 基于BSDF的模型 基于物理的模型 用户自定义模型 ABg模型 Harvey-Shack 实测BSDF导入 表面粗糙度 Mie散射 Rayleigh散射 DLL/脚本扩展 说明 BSDF模型:基于实测或经验公式,速度快,工程常用 物理模型:基于电磁理论,精度高,计算量大

好,图看完了,我逐个给你拆解。

1.3.1 基于BSDF的模型

BSDF,全称Bidirectional Scattering Distribution Function,双向散射分布函数。它描述的是:给定入射方向,光在某个出射方向上的散射强度。说白了,就是一张“散射方向图”。

FRED里最常用的BSDF模型有三个:

  • ABg模型:用三个参数A、B、g来拟合BSDF曲线。A控制总散射量,B控制拐点位置,g控制下降斜率。我个人的习惯是,手头没有实测数据时,先用ABg模型估算。
  • Harvey-Shack模型:基于表面功率谱密度(PSD)推导而来,对光滑表面特别准。做高精度成像系统时,我首选这个。
  • 实测BSDF导入:你有实测数据?直接导入FRED,软件会自动插值。这是最准的方式,没有之一。

注意:BSDF模型假设散射是各向同性的。如果你的表面有方向性纹理(比如车刀纹),BSDF模型会失效。这时候得用BRDF各向异性模型,或者直接上实测数据。

1.3.2 基于物理的模型

这类模型从电磁理论出发,直接计算散射。精度高,但计算量大。FRED支持:

  • 表面粗糙度模型:输入RMS粗糙度、相关长度,软件自动生成散射分布。适合镀膜前评估。
  • Mie散射:处理颗粒散射,粒径与波长可比时用。我做过一个激光粉尘检测项目,就是靠Mie散射模型算的。
  • Rayleigh散射:颗粒远小于波长时用。比如大气散射、蓝光在玻璃中的散射。

1.3.3 用户自定义模型

FRED开放了DLL接口和脚本接口。你可以用C++写自己的散射模型,编译成DLL后直接挂载。我当年做非球面散射特性研究时,就自己写过一个基于功率谱密度的散射模型。说实话,门槛不低,但灵活性极高。

选型建议:工程应用优先用BSDF模型,速度快、参数少。研究性质的工作用物理模型。实在搞不定,再考虑自定义。别一上来就写DLL,那是最后的手段。

1.4 本章小结

这一章,咱们把散射的底摸了一遍。从现象到作用,再到FRED的模型分类。你记住三句话就够了:

  1. 散射是光与微观结构相互作用的结果,不是玄学。
  2. 散射在系统里可以是朋友,也可以是敌人,取决于你的应用场景。
  3. FRED的散射模型分三大类:BSDF模型(工程首选)、物理模型(精度优先)、自定义模型(灵活但门槛高)。