OptiBench Web光学系统模拟器 · 几何+波动光学
滚轮 缩放 · 拖拽空白 平移 · 拖拽元件 改变轴向位置(实时重算)
悬停光线 读取光程/能量/入射角 · 双击 适配视图 · 快捷键 1/2 L N G H F R
① 点阵图 Spot Diagram
±
② 波前 / 扇形图
③ PSF / 干涉屏
④ MTF 调制传递函数
悬停读数

光学原理与算法说明

本模拟器的全部图像与曲线均由下述物理方程实时计算得到, 不含任何预设动画、贴图或经验拟合曲线。长度单位 mm, 波长 nm, 弥散/像元 µm, 波前以波长 λ 为单位。

1. 几何光线追迹 — 矢量形式斯涅尔定律

光线用起点 O 与单位方向 d 表示。在界面处取指向入射侧的单位法线 n (使 cos θᵢ = −d·n > 0), 则折射方向由矢量形式的斯涅尔定律给出:

μ = n₁/n₂ sin²θₜ = μ²(1 − cos²θᵢ) 若 sin²θₜ > 1 → 全内反射 (TIR), 改用反射公式 T = μ·d + (μ·cosθᵢ − cosθₜ)·n R = d − 2(d·n)·n

该形式无需分解到入射面内, 对任意倾斜/离轴/非旋转对称几何均严格成立。程序对每条光线在每个面上都做一次上述计算, 因此色散、倾斜面、棱镜、折转镜自然被包含。

2. 面型与求交 (二次曲面 + 偶次非球面)

矢高 z(r) = c·r² / (1 + √(1 − (1+k)c²r²)) + Σ aᵢ·r^(2i+2) 其中 c = 1/R, k = 圆锥常数, a₄a₆a₈a₁₀ 为高阶项 隐式二次曲面 F = c(x²+y²+(1+k)z²) − 2z = 0

纯二次曲面时把光线参数式代入 F=0解析二次方程并取靠近顶点的根 (数值稳定形式 q = −½(B+sgn(B)√Δ)); 含高阶非球面项时以该根为初值做牛顿迭代 f(t)=z(t)−sag(r(t)), 收敛判据 |f|<10⁻¹¹ mm。法线由梯度求得:

N_local = normalize( −s′(r)·x/r , −s′(r)·y/r , 1 ) s′(r) = c·r/√(1−(1+k)c²r²) + 4a₄r³ + 6a₆r⁵ + 8a₈r⁷ + 10a₁₀r⁹

k=−1 时为抛物面: 自检脚本验证平行光聚焦残差 < 10⁻⁸ nm (严格无球差)。

3. 色散模型 — Sellmeier / Cauchy

n²(λ) = 1 + Σᵢ Bᵢλ² / (λ² − Cᵢ) (λ 单位 µm) Cauchy: n(λ) = A + B/λ² + C/λ⁴

内置 N-BK7 / N-K5 / N-SK16 / N-SF5 / F2 / N-SF11 / 熔融石英 / CaF₂ 的 Schott 三项 Sellmeier 系数, PMMA 与水用 Cauchy 式; 阿贝数由 n_d、n_F、n_C 现算。材料栏直接键入数字即可作为常数折射率使用。

4. 能量传输 — 菲涅尔方程

rs = (n₁cosθᵢ − n₂cosθₜ)/(n₁cosθᵢ + n₂cosθₜ) rp = (n₂cosθᵢ − n₁cosθₜ)/(n₂cosθᵢ + n₁cosθₜ) Rs = |rs|², Rp = |rp|², T = 1 − R (无吸收)

s、p 两个偏振分量的能量分别沿光路累乘; 探针面板可读出任意光线在任意面的 Rs/Rp 与残余能量。布儒斯特角处 Rp→0 已在自检中验证。反射镜按设定反射率衰减, 分束器按透射比 T 分配, 非顺序模式下同时产生透射与反射两个子分支 (可开启菲涅尔鬼像追迹)。

5. 顺序 / 非顺序追迹

顺序: 按透镜表顺序逐面求交, 用于成像系统的像差与 MTF 分析; 参考轴在反射镜处自动折转, 因此厚度始终取"沿传播方向的正距离"。非顺序: 每一步在全部面中搜索最近的合法交点, 遇分束器/界面时按能量分裂为多条子光线 (深度与能量阈值双重截断), 可模拟干涉仪、鬼像与杂散光。

6. 光瞳、视场与近轴量

用 y–nū 近轴追迹求 EFL、BFL (反射面处令 n→−n 并翻转传播符号)。入射光瞳由光阑反向近轴追迹得到: 以 (y=0,u=1) 与 (y=1,u=0) 两条虚拟光线反向穿过光阑之前的所有面, 前者的零点给出入瞳位置, 后者给出入瞳放大率。光线在入瞳面上按六角极坐标/方格/随机采样后指向物点或按视场角倾斜发射。

7. 波前 (OPD) 与参考球面

OPL_total = Σ nᵢ·Lᵢ (到出射点) + n_img·|R − P_exit| OPD(px,py) = [OPL_total − ⟨OPL_total⟩] / λ (单位: 波长)

R 取该视场主波长像面交点的能量质心, 因此 OPD 即相对"汇聚于 R 的理想球面波"的偏差, 已自动去除活塞项与主要倾斜项; 非主波长保留其倾斜, 于是倍率色差会真实体现在 OPD/PSF 上。

8. PSF — 光瞳复振幅衍射积分 (FFT)

P(px,py) = A(px,py)·exp( −i·2π·OPD ) PSF = |FFT₂{P}|², Strehl = |Σ A e^{iφ}|² / (Σ A)² 像元标定 Δx = 0.5·λ·Np/(NA·N) ⇒ 艾里半径 = 0.61λ/NA 恰为 1.22·N/Np 个像素

A 为振幅 (含菲涅尔透过率、高斯切趾与遮拦), Np 为光瞳直径占据的采样点数, N 为补零后的 FFT 网格。多波长时各自计算后按 Δx 双线性重采样到公共像元再加权叠加。自检: 抛物面镜 Strehl=1.0000, 第一暗环位置与 0.61λ/NA 相差 < 2.5%。

9. MTF 与衍射极限

OTF(f) = FFT₂{PSF}, MTF = |OTF| / |OTF(0)| 截止频率 f_c = 2·NA/λ = 1/(λ·F/#) 理想圆孔 MTF(ν) = (2/π)[arccos ν − ν√(1−ν²)], ν = f/f_c

子午 (T) 取频域 fy 轴、弧矢 (S) 取 fx 轴。自检: 无像差系统与理想衍射极限曲线平均偏差 0.002。

10. 像差量的数值定义 (全部来自实际追迹, 非塞德尔近似)

11. 相干干涉 (非顺序模式)

I(x,y) = | Σⱼ aⱼ · exp(i·k·OPLⱼ) · G(x−xⱼ, y−yⱼ) |², k = 2π/λ

到达屏的每条光线携带自身 OPL 与振幅, 按高斯足迹投放到屏格并做复振幅相加后取模方 —— 迈克尔逊/马赫-曾德尔预设中两臂光程差随镜面倾角变化, 直接给出等厚干涉直条纹, 面板同时给出条纹对比度与间距估计。

12. 确定性与性能

散射与表面粗糙度分别使用 mulberry32(seed)hash(rayId, surfaceIdx, seed), 无 Math.random: 相同参数与采样密度下每次运行逐位一致。拖拽元件时自动降采样 (光线数与 FFT 网格) 保证 60 fps 交互, 停止操作 170 ms 后自动以全精度重算并刷新全部图表。

13. 已知近似 (据实说明, 非"待实现")

14. 交互速查

1 / 22D / 3D 视图 F自动对焦 R适配视图 L光线 N法线 G网格 H标注 + / −光线密度 ?本说明 双击面板标题放大图表 拖拽数字框连续微调