跳到主要内容
Sandbox Physics

光学 043 · 干涉、相干、光腔与精密测量

薄膜颜色工作室

薄膜为什么会反射出颜色,倾斜一下颜色为什么就变了? 每层上下两个表面的反射光彼此干涉。光程差由膜厚、折射率和入射角决定,有的波长加强,有的抵消,反射光就带上了颜色。斜着照时光程差变短,两种偏振的反射也不再一样,颜色随之改变。

在厚度放大的剖面里编辑单层膜或重复的双层膜堆。s 光和 p 光的相干传输矩阵给出固定曝光下的 D65 颜色、完整的功率谱,以及反射率随角度和波长变化的地图。

交互模型薄膜颜色工作室
共同波长/反射与透射功率 λp,Rp,Tp\lambda_p,R_p,T_p0.500.50
D65 亮度比例/首层往返相位 YR,YT,δHY_R,Y_T,\delta_H50%50\%
实际层数/总厚度/光谱能量守恒误差 Nℓ,D,εEN_\ell,D,\varepsilon_E0.00π0.00\pi
模型适用区间模型适用\text{模型适用}

物理教程

检验薄膜颜色工作室的物理过程

背景透明薄膜的每个界面都会反射一部分光。光在膜层里走一个来回,积累的相位是 δj=4πnjdjcos⁡θjλ\delta_j=\frac{4\pi n_jd_j\cos\theta_j}{\lambda}。界面反射的正负号非常关键:两侧都是空气的平面肥皂膜,厚度趋于零时反射变暗,透射光依旧明亮。本 Lab 在每个界面上匹配场,膜内所有来回反射都算在里面,不是把两条不带符号的光线简单相加。

为什么值得理解薄膜为什么会反射出颜色,倾斜一下颜色为什么就变了?

先抓重点

核心问题
薄膜为什么会反射出颜色,倾斜一下颜色为什么就变了?
一句话直觉
无损镀膜只是把光分给两个出口:R(λ)+T(λ)=1R(\lambda)+T(\lambda)=1。增透不是吸收。精确的四分之一波匹配层,只在正入射、一个设计波长上消除反射,并不能消掉整个可见光谱。高低折射率层成对重复,得到的则是一段反射带。倾斜入射会改变光学相位,把 s 和 p 分开。

核心数学模型

Snell 几何与层内相位

njsin⁡θj=sin⁡θ0,βj=2πnjdjcos⁡θjλ,δj=2βjn_j\sin\theta_j=\sin\theta_0,\qquad\beta_j=\frac{2\pi n_jd_j\cos\theta_j}{\lambda},\qquad\delta_j=2\beta_j

角度从法线量起。在共同的出射波前上比较相位时,起决定作用的是余弦因子,不能只看层内更长的折线路程。折射率是恒定的实数;改变折射率时,厚度保持不变。

切向场特征矩阵

Mj=(cos⁡βj−isin⁡βj/qj−iqjsin⁡βjcos⁡βj),qj(s)=njcos⁡θj,qj(p)=nj/cos⁡θjM_j=\begin{pmatrix}\cos\beta_j&-i\sin\beta_j/q_j\\-iq_j\sin\beta_j&\cos\beta_j\end{pmatrix},\quad q_j^{(s)}=n_j\cos\theta_j,\quad q_j^{(p)}=n_j/\cos\theta_j

时间谐波因子取负指数约定。矩阵把膜层后表面的切向电场和磁场,映射到前表面。相乘时按实际从前到后的顺序。对 p 偏振,切向振幅约定和全矢量约定的反射符号相反,反射率相同。

分别算出的反射功率和透射功率

M=∏jMj,B=M11+qsM12,C=M21+qsM22r=q0B−Cq0B+C,t=2q0q0B+CR=∣r∣2,T=qsq0∣t∣2,Ru=Rs+Rp2\begin{aligned}M&=\prod_jM_j,\quad B=M_{11}+q_sM_{12},\quad C=M_{21}+q_sM_{22}\\r&=\frac{q_0B-C}{q_0B+C},\quad t=\frac{2q_0}{q_0B+C}\\R&=|r|^2,\quad T=\frac{q_s}{q_0}|t|^2,\quad R_u=\frac{R_s+R_p}{2}\end{aligned}

透射率含沿法线方向的能流因子,由透射振幅算出,不是直接取一减反射率。非偏振光要平均功率,不能平均复振幅。基底导纳的下标不表示 s 偏振。

只在一个设计点完全消反射

n1=n0ns,d1=λ04n1,R(λ0,0)=0n_1=\sqrt{n_0n_s},\qquad d_1=\frac{\lambda_0}{4n_1},\qquad R(\lambda_0,0)=0

预设取的是这组理想值。滑块步长有限,会留下一点残余反射,小于显示精度。精确的数学设计另外单独检验。只要波长、角度、折射率或厚度偏离设计值,反射就会重新出现。

固定曝光下从光谱到颜色

(X,Y,Z)=∫360830SD65(λ)R(λ)(xˉ,yˉ,zˉ) dλ∫360830SD65(λ)yˉ(λ) dλ(X,Y,Z)=\frac{\int_{360}^{830}S_{D65}(\lambda)R(\lambda)(\bar x,\bar y,\bar z)\,d\lambda}{\int_{360}^{830}S_{D65}(\lambda)\bar y(\lambda)\,d\lambda}

官方 CIE 1931 二度配色函数和 D65 数据每 1 nm 取样,用梯形法积分。把反射率换成透射率再算一遍,就得到透射色块。XYZ 先转成线性 sRGB,截到显示色域内,再编码。光谱不会按最亮点重新归一化。样片画成不受光照影响的色块,不按物理渲染周围环境的反射。

常见难点

彩虹表面不等于薄膜计算

容易误解随便一个虹彩材质着色器,都能正确模拟肥皂泡和所有光学镀膜。

正确理解颜色必须由求解出的光谱、光源和观察者共同决定。本模型的基底是半无限的,膜层平直、无损,只能编辑单层,或重复相同的双层。气泡曲率、流动膜层的厚度分布、吸收、材料色散和逐层任意设计,都需要另外的模型。

动手实验

  1. 01

    场景 1:空气中的平面肥皂膜

    把肥皂膜厚度调到零,再慢慢加厚。截面真的在变厚;颜色由光谱算出,不是随时间播放的动画。

    你会看到: 肥皂膜薄到消失时,不再反射,透射的仍是全部功率。
  2. 02

    场景 2:单层增透膜

    选择增透膜,在 550 nm 处取样。膜层不动,只改变波长或角度,看消反射怎样失效。

    你会看到: 设计波长上的理想增透,不一定让日光下的反射正好全黑。
  3. 03

    场景 3:五双层介质反射镜

    选择多层场景,编辑两种厚度、两种折射率、重复次数与基底,再对比斜入射的 s 与 p。

    你会看到: 介质反射镜只在一段反射带内反射,不是处处完美反射。角度图显示了反射随波长和偏振的变化。

相关实验与文章

继续探索

一层薄膜,多种颜色

把随时间改变的膜厚图样,与局部膜层的反射光谱分开观察。

  1. 实验Living Rainbow · Thin-Film Interference探索曲面薄膜和随时间变化的膜厚。
  2. 当前页面薄膜颜色工作室在平面单层与多层膜中检查光谱和偏振。

探针与测量 · 阅读路径

干涉:量长度,也记录图像

这条阅读路径里用到本实验的文章,后面跟着它们推荐的其他实验。

  1. 文章Lippmann:颜色怎样写进底片深处
反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策