---
title: "薄膜颜色工作室互动实验｜Sandbox Physics"
description: "薄膜为什么会反射出颜色，倾斜一下颜色为什么就变了？每层上下两个表面的反射光彼此干涉。"
canonical_url: "https://sandboxphysics.com/zh/labs/thin-film-color-studio/"
language: "zh-CN"
page_type: "lab"
alternate_languages:
  en: "https://sandboxphysics.com/labs/thin-film-color-studio/"
last_modified: "2026-10-27"
---

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

# 薄膜颜色工作室

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

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

> 交互仿真：在浏览器中打开本页，即可调整参数并运行模型。

膜层无限大、平整、无损，折射率为无色散的实数，基底为半无限厚。这里不模拟弯曲的气泡和流体，不优化任意膜堆，也不生成标定过的照片。

物理教程

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

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

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

先抓重点

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

### 核心数学模型

#### Snell 几何与层内相位

$$
n_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
$$

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

#### 切向场特征矩阵

$$
M_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 偏振，切向振幅约定和全矢量约定的反射符号相反，反射率相同。

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

$$
\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 偏振。

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

$$
n_1=\sqrt{n_0n_s},\qquad d_1=\frac{\lambda_0}{4n_1},\qquad R(\lambda_0,0)=0
$$

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

#### 固定曝光下从光谱到颜色

$$
(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** 探索曲面薄膜和随时间变化的膜厚。](https://sandboxphysics.com/zh/labs/thin-film-interference/)
2. [当前页面 **薄膜颜色工作室** 在平面单层与多层膜中检查光谱和偏振。](https://sandboxphysics.com/zh/labs/thin-film-color-studio/)

探针与测量 · 阅读路径

### 干涉：量长度，也记录图像

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

1. [文章 **Lippmann：颜色怎样写进底片深处**](https://sandboxphysics.com/zh/stories/probe-evidence/lippmann-recorded-colour/)

波与光学 · 入门路径

## 从一条光线到干涉测量

从折射出发，找到光线模型失效的地方，再用干涉测量极小的距离。

[从这里开始 → **光学界面探索器** 转动入射角，观察反射与透射功率此消彼长；再切换到“临界角与全反射”场景。 观察 · 11 分钟](https://sandboxphysics.com/zh/labs/optical-boundary-explorer/)

1. [1 光学界面探索器](https://sandboxphysics.com/zh/labs/optical-boundary-explorer/)
2. [2 彩虹焦散观测站](https://sandboxphysics.com/zh/labs/rainbow-laboratory/)
3. [3 针孔相机](https://sandboxphysics.com/zh/labs/camera-obscura/)
4. [4 相干波合成器](https://sandboxphysics.com/zh/labs/coherent-wave-composer/)
5. [5 Young 双缝实验台](https://sandboxphysics.com/zh/labs/young-double-slit-bench/)
6. [6 Michelson 精密测量台](https://sandboxphysics.com/zh/labs/michelson-precision-lab/)

[查看完整路径 →](https://sandboxphysics.com/zh/topics/waves-and-optics/#starter-path)
