3、光学材料与界面:折射率与色散、阿贝数、光学玻璃分类、界面模型与边界条件

做光线追迹,说白了就是在跟光与材料的相互作用打交道。你设计再好的镜头,选错了玻璃,追迹结果就是废纸一张。我刚开始学的时候,觉得折射率不就是个常数嘛,查表就完事了。后来被现实狠狠教育了一回——不同波长的光,折射率差得远着呢。

这一章,咱们就把光学材料和界面这件事彻底聊透。

3.1 折射率与色散

折射率 n 的定义很简单:真空中的光速除以介质中的光速。但真正干活的时候,你会发现它跟波长关系很大。

为什么会这样?因为材料内部的电子结构对不同波长的光响应不同。蓝光波长短,频率高,跟材料作用强,走得就慢,折射率就大。红光相反。

这个现象叫色散。用公式表示就是 n(λ),折射率是波长的函数。

常用的色散公式有好几种,我个人最常用的是柯西公式:

n(λ) = A + B / λ² + C / λ⁴

其中 λ 单位是微米。A、B、C 是材料拟合系数。精度要求不高时,取前两项就够了。

我的经验: 柯西公式在可见光波段挺好用,但到了近红外或紫外区就开始飘了。那时候我建议换用 Sellmeier 公式,精度高一个量级。

3.2 阿贝数

阿贝数 V 是衡量材料色散大小的指标。数值越大,色散越弱。公式是:

V = (n_d - 1) / (n_F - n_C)

其中:

  • n_d — 氦 d 线(587.6 nm)的折射率
  • n_F — 氢 F 线(486.1 nm)的折射率
  • n_C — 氢 C 线(656.3 nm)的折射率

阿贝数越大,色差越小。比如氟冕玻璃阿贝数能到 90 以上,而重火石玻璃可能只有 25 左右。

我记得有一次做双胶合消色差透镜,选玻璃的时候没仔细看阿贝数,结果两个材料的色散曲线交叉了,追迹出来的色差比单透镜还大。嗯,从那以后我选玻璃第一件事就是查阿贝数。

3.3 光学玻璃分类

光学玻璃种类多得吓人,但核心分类就两大家族:冕牌玻璃和火石玻璃。

类型 阿贝数范围 折射率范围 典型牌号 特点
氟冕 (FK) 70–95 1.44–1.50 FK51 低色散,低折射率
轻冕 (K) 55–65 1.50–1.52 K9 通用光学玻璃
钡冕 (BaK) 50–60 1.53–1.58 BaK4 中等折射率
重冕 (ZK) 45–55 1.60–1.70 ZK7 高折射率,低色散
轻火石 (F) 35–45 1.57–1.62 F2 中等色散
重火石 (ZF) 25–35 1.65–1.80 ZF6 高色散,高折射率
特重火石 (ZLaF) 20–30 1.80–2.00 ZLaF1 超高折射率

选玻璃的时候,我一般会画一张 n–V 图。横轴是阿贝数,纵轴是折射率。不同厂商的玻璃牌号在这张图上有固定位置,一看就知道怎么搭配。

避坑指南: 我曾经在项目中用了某厂商的环保玻璃,结果追迹时发现它的色散曲线跟标准库对不上。后来才知道,环保玻璃的配方改了,折射率虽然一样,但色散变了。所以,永远用实际测量数据,别迷信数据库。

3.4 界面模型与边界条件

光线追迹的核心操作就是光线穿过界面。界面模型决定了光线怎么折、怎么反。

3.4.1 斯涅尔定律

这是最基础的界面模型:

n₁ · sin(θ₁) = n₂ · sin(θ₂)

其中 θ₁ 是入射角,θ₂ 是折射角,都从法线量起。

但实际代码里,我不会直接用这个公式。因为当入射角接近 90° 时,sin 值变化很慢,数值精度会出问题。我习惯用矢量形式的斯涅尔定律:

k₂ = (n₁/n₂) · k₁ + [ (n₁/n₂) · cos(θ₁) - cos(θ₂) ] · N

其中 k₁、k₂ 是光线方向矢量,N 是法线矢量。这样计算更稳定,而且能直接处理全反射的情况。

3.4.2 全反射

当光从光密介质射向光疏介质,入射角大于临界角时,就发生全反射。临界角公式:

θ_c = arcsin(n₂ / n₁)

代码里判断全反射很简单:如果 n₁ / n₂ · sin(θ₁) > 1,那就没有折射光线,直接反射。

注意: 全反射不是"没有光出去",而是所有能量都反射回来了。这在光纤和波导设计中是好事,但在透镜边缘可能会造成杂散光。我做过一个项目,就是因为透镜边缘角度太大,光线在内部全反射了,结果像面上多了一堆鬼影。

3.4.3 菲涅耳公式

斯涅尔定律只告诉你光线往哪走,但没告诉你多少光过去了。菲涅耳公式算的是反射率和透射率。

对于 S 偏振(电场垂直于入射面):

R_s = | (n₁·cos(θ₁) - n₂·cos(θ₂)) / (n₁·cos(θ₁) + n₂·cos(θ₂)) |²

对于 P 偏振(电场平行于入射面):

R_p = | (n₁·cos(θ₂) - n₂·cos(θ₁)) / (n₁·cos(θ₂) + n₂·cos(θ₁)) |²

透射率 T = 1 - R(不考虑吸收时)。

你想想看,如果入射角是布儒斯特角,P 偏振的反射率会降到零。这个特性在激光器窗口设计里特别有用。

3.4.4 多层膜界面

实际镜头表面都有镀膜。单层界面模型不够用了,得用传输矩阵法(TMM)。

每层膜用一个 2×2 矩阵表示:

M_i = [ cos(δ_i),      (i / η_i) · sin(δ_i) ]
      [ i · η_i · sin(δ_i),  cos(δ_i)       ]

其中 δ_i = 2π · n_i · d_i · cos(θ_i) / λ,η_i 是修正导纳。

把所有层的矩阵乘起来,就能算出总反射率和透射率。我当年写镀膜优化程序时,这个矩阵乘法循环跑了上万次,每次都要小心数值溢出。

3.5 知识结构图

下面这张图把本章的核心概念串起来了。你一看就明白它们之间的关系。

光学材料与界面知识体系 光线追迹核心 材料属性 折射率 n(λ) 色散:柯西 / Sellmeier 阿贝数 V 玻璃分类:冕牌 / 火石 界面模型 斯涅尔定律(矢量形式) 全反射判断 菲涅耳公式(S/P 偏振) 多层膜:传输矩阵法 核心逻辑 材料属性决定折射率和色散 → 界面模型决定光线行为 两者结合才能准确追迹光线,评估像差和能量分布

3.6 实际项目中的注意事项

最后聊几个我踩过的坑,你遇到了能少走弯路。

  • 温度影响: 折射率随温度变化。精密系统里,20°C 和 40°C 的折射率差可能让焦面偏移几十微米。我一般会在追迹代码里加一个温度补偿项。
  • 应力双折射: 玻璃成型时内部有残余应力,会导致折射率各向异性。高功率激光系统里这个影响特别明显。解决办法是选退火质量好的玻璃。
  • 镀膜相位: 多层膜不仅改变反射率,还会引入相位变化。干涉系统里这个相位差必须算进去,否则条纹位置全错。
  • 数据一致性: 不同厂商提供的折射率数据测量条件可能不同。我习惯把所有数据统一到 20°C、1 atm 的标准条件下再比较。