3. 光线追迹基础:什么是光线追迹、近轴光线追迹、实际光线追迹、光线扇面图与点列图
光线追迹,说白了就是光学设计的“基本功”。你想想看,我们设计一个镜头,总得知道光线是怎么穿过它的吧?光线追迹就是干这个的——模拟光线从物面出发,经过每个镜面,最后到达像面的完整路径。
我个人习惯把光线追迹比作“光学系统的CT扫描”。每一条光线都像是一个探针,告诉我们系统在某一个视场、某一个孔径位置上的表现。没有光线追迹,光学设计就是盲人摸象。
3.1 什么是光线追迹
光线追迹的核心思想很简单:用几何光学的定律,逐面计算光线的传播路径。具体来说,就是利用折射定律(斯涅尔定律)和反射定律,从一个面到下一个面,一步步算出光线的交点、方向、光程。
在Code V里,光线追迹是几乎所有分析功能的基础。你点一下“点列图”,背后跑了成千上万条光线;你点一下“MTF”,背后也是光线追迹在支撑。
核心公式(折射定律):
n₁ × sin(θ₁) = n₂ × sin(θ₂)
其中 n₁、n₂ 是界面两侧的折射率,θ₁、θ₂ 是入射角和折射角。
嗯,这里要注意:光线追迹假设光线是“独立传播”的,不考虑干涉、衍射等波动光学效应。但在大多数成像系统设计中,这个假设足够用了。
3.2 近轴光线追迹
近轴光线追迹,也叫“一阶光学”或“旁轴光线追迹”。它做了一个重要假设:光线与光轴的夹角非常小,小到可以用角度本身代替正弦值(sinθ ≈ θ)。
为什么要做这个近似?因为这样计算就变成了线性运算,简单得多。你可以用手算,也可以用Code V一键搞定。
我记得刚入行时,师傅让我用手算一个双胶合透镜的焦距。我算了整整一下午,算完才发现Code V里一个命令就出来了。但那次手算让我对近轴光线的概念理解得特别深。
近轴追迹能告诉你什么?
- 系统的有效焦距(EFL)
- 后焦距(BFL)
- 主面位置
- F数
- 像高与视场的关系
这些都是系统级的“大数”,决定了镜头的基本规格。
在Code V里,近轴光线追迹通常用 PARAXIAL 命令或者 PXT(近轴光线追迹)功能来实现。你不需要自己写公式,但理解背后的原理能帮你更好地解读结果。
3.3 实际光线追迹
实际光线追迹,也叫“真实光线追迹”或“精确光线追迹”。它不再做小角度近似,而是直接用完整的折射定律公式计算。每条光线都要解一个非线性方程,计算量比近轴追迹大得多。
为什么要用实际光线追迹?因为真实的光线并不乖乖地待在近轴区域。尤其是大孔径、大视场的系统,边缘光线的行为跟近轴预测差别很大。这个差别,就是我们常说的像差。
避坑指南:
我曾经犯过一个错误:用近轴追迹的结果去评估一个广角镜头的像质,结果发现实际成像跟预测完全对不上。后来才明白,广角镜头边缘视场的光线角度很大,近轴近似根本不成立。从那以后,我养成了一个习惯:初步设计用近轴,优化和评估必须用实际光线追迹。
Code V里实际光线追迹的命令是 REAL 或者 RAY。你可以指定光线的起始坐标和方向,系统会逐面计算并输出每个面上的交点坐标、入射角、出射角、光程等数据。
3.4 近轴 vs 实际:对比一览
| 对比项 | 近轴光线追迹 | 实际光线追迹 |
|---|---|---|
| 计算假设 | sinθ ≈ θ | 完整折射定律 |
| 计算复杂度 | 线性,快速 | 非线性,较慢 |
| 适用场景 | 初始设计、系统规格 | 像差分析、最终评估 |
| 精度 | 仅对小角度有效 | 高,适用于所有光线 |
| Code V命令 | PARAXIAL, PXT | REAL, RAY |
3.5 光线扇面图
光线扇面图,英文叫 Ray Fan Plot,是分析像差最直观的工具之一。它展示的是:在某个视场下,不同孔径位置的光线在像面上的偏离量。
怎么读这个图?
- 横轴:归一化的孔径坐标(-1 到 1,对应光瞳边缘到另一边)
- 纵轴:光线在像面上的横向像差(单位通常是微米或毫米)
如果系统没有像差,光线扇面图应该是一条水平直线。曲线越弯曲,说明像差越大。曲线的形状还能告诉你是什么类型的像差:
- 抛物线形 → 球差
- S形曲线 → 彗差
- 倾斜直线 → 场曲或离焦
- 非线性扭曲 → 像散或高级像差
我的经验:
看光线扇面图时,我习惯先看“子午面”(Tangential)和“弧矢面”(Sagittal)两条曲线是否重合。如果不重合,说明有像散。再看曲线在边缘(孔径=±1)处的纵坐标值,这个值大致反映了系统的“像差容限”。
3.6 点列图
点列图,英文叫 Spot Diagram,是另一种评估像质的方法。它的原理很简单:从物点发出大量光线,追迹到像面,看这些光线落在像面上的分布情况。
理想情况下,所有光线应该汇聚到同一点。但实际上,由于像差的存在,它们会散开成一个光斑。这个光斑的大小和形状,直接反映了系统的成像质量。
点列图里常用的几个指标:
- RMS半径:所有光线到中心点的均方根距离,反映光斑的整体弥散程度
- GEO半径:最远光线到中心点的距离,反映光斑的最大范围
- 质心:光斑的能量中心,通常与主光线位置不同(存在彗差时)
经验法则:
对于可见光成像系统,如果点列图的RMS半径小于一个像素大小,通常认为像质是合格的。对于高精度系统,这个要求会更严格——我曾经做过一个光刻物镜,要求RMS半径小于0.1微米。
3.7 知识体系总览
下面这张图总结了本章的核心知识结构,帮你理清光线追迹的脉络:
3.8 在Code V中实操
说了这么多理论,咱们看看在Code V里怎么实际操作。假设你已经有了一个镜头文件(比如我们之前建的“双胶合透镜”),想看看它的光线追迹结果:
! 近轴光线追迹:查看系统基本参数
PARAXIAL
! 输出结果会显示 EFL、BFL、F数等
! 实际光线追迹:追迹一条具体光线
RAY 0 0 1 0
! 参数含义:视场(0,0),孔径坐标(1,0) —— 即光瞳边缘水平方向
! 查看光线扇面图
RFR
! 或者用图形界面:Analysis → Ray Fan Plot
! 查看点列图
SPD
! 或者用图形界面:Analysis → Spot Diagram
小技巧:
在Code V里,你可以用 RAY 命令追迹任意一条光线,然后查看它在每个面上的详细数据。我调试复杂系统时,经常用这个功能定位“是哪一面引入了最大的像差”。具体做法是:追迹一条边缘光线,然后看每个面上的 REA(实际光线误差)值,数值突然变大的那个面就是问题所在。
光线扇面图和点列图是Code V里最常用的两个分析工具。我个人习惯是:先用光线扇面图快速判断像差类型,再用点列图定量评估像质。两者配合使用,效率很高。