Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第18章:如何阅读光学软件输出

本书开头,MTF曲线看起来像一个成品。

由某个软件生成。曲线随频率下降。包含弧矢和子午方向的曲线。有视场位置、波长,可能还有衍射极限。看起来非常正式。

现在,我们可以用不同的方式解读这条曲线了。

它不再是软件给出的神秘判决。

它是一条链的末端:

镜头处方
→ 表面和材料
→ 光线追迹
→ 光程长度
→ OPD
→ 光瞳函数
→ PSF
→ OTF
→ MTF

如果涉及优化,这条链就变成了一个循环:

镜头处方
→ 分析
→ 评价函数
→ 优化器更改变量
→ 新处方
→ 再次分析

这就是本书希望带来的主要转变。

不是说要你停止使用光学设计软件,恰恰相反。优秀的光学设计软件之所以强大,正是因为它能可靠地执行大量复杂的计算。

你不再需要把输出视为一份不能改变的裁决。

你可以追问它的来源。

你可以检查它的输入。

你可以审视它的假设。

你可以将它和系统的其他部分进行比较。

这就是“善于阅读光学软件输出”的含义。


1. 第一个习惯:绝不孤立地看图

一幅图不是不言自明的。

点列图、光线扇形图、波前图、PSF或MTF曲线总是属于某个特定的配置。

在解读任何输出之前,先问:

是哪个光学系统产生了这个结果?
哪个视场点?
哪个波长或哪组波长?
什么孔径?
什么聚焦设置?
什么采样设置?
什么归一化方式?
什么坐标约定?

一开始可能觉得慢,其实不然。这是避免自我欺骗的最短路径。

没有配置的图就像一个没有单位的数字。

它可能看起来很精确,但你并不知道它意味着什么。

例如,这个表述很弱:

MTF是0.45。

这个表述更好:

在40 cycles/mm处,对于边缘视场、绿光波长、
子午方向、全孔径、当前聚焦设置,
归一化MTF是0.45。

它更长,因为它更诚实。

光学上的大多数误解,都始于一个掩盖了配置信息的简短陈述。


2. 从镜头处方入手

看到软件输出时,不要从欣赏图形开始。

先问是哪个镜头处方产生了它。

镜头处方包含了基本的计算对象:

表面半径
厚度
材料
半孔径
圆锥或非球面项
光阑位置
像平面

这不是文书工作,这就是系统本身。

后续的每一项计算都依赖于它。

一个实用的阅读顺序是:

1. 镜头处方
2. 系统布局图
3. 近轴特性
4. 实际光线分析
5. 波前分析
6. PSF / MTF
7. 优化报告

如果处方错了,后面的每一个输出都是这个错误的下游结果。

所以第一项检查很简单:

这个模型代表了我所认为的那个光学系统吗?

留意简单的错误:

  • 半径符号错误;
  • 玻璃材料错误;
  • 厚度单位错误;
  • 缺少光阑;
  • 像距错误;
  • 半孔径太小;
  • 表面顺序错误;
  • 波长定义不匹配;
  • 视场输入的单元错误。

这些不是激动人心的错误,却是常见的错误。

光学计算充满了高等数学,但许多糟糕的结果都始于普通的错误输入。


3. 然后看系统布局图

系统布局图是第一个视觉上的健全性检查。

它告诉你,处方是否变成了一个物理上合理的系统。

要问:

元件顺序是否正确?
光线是否通过了孔径?
光阑是否出现在预期的位置?
光线是否到达了像平面?
是否有明显的光线追迹失败?
比例看起来合理吗?

系统布局图无法证明成像质量。一个不好的镜头也可以有一个看起来很合理的布局。

但是,一个明显错误的布局会让之后的图都不可信。

这是一条有用的规则:

不要相信一个你还没检查过系统布局的镜头的漂亮 MTF 曲线。

系统布局图是抵御隐藏建模错误的第一道防线。


4. 将近轴结果作为骨架检查

近轴分析不是老套的装饰,它是光学系统的骨架。

在阅读详细的像质图之前,先检查:

有效焦距
后焦距
F数
数值孔径
光瞳直径
放大率
主光线行为

这些是一阶量。它们告诉你,系统大致上是不是你打算构建的那个镜头。

如果你预期是一个50毫米镜头,而近轴分析给出的焦距是500毫米,那就不要继续解读PSF了。上游出错了。

如果你预期是f/4,而计算出的孔径行为像f/16,那么你的衍射尺度和MTF截止频率就会不同。

如果入瞳不在你预期的地方,视场行为和孔径采样可能会让你惊讶。

近轴结果不是最终真理。实际光线会偏离它。

但它提供了参考框架。

近轴分析告诉你光学系统的一阶特性。
实际光线分析告诉你现实如何偏离了那个特性。

按这个顺序来阅读它们。


5. 点列图:将其理解为光线交点统计

点列图不是波动光学意义上的模糊斑图。

它是像平面上光线交点的分布。

它回答:

采样的光线落到了哪里?

阅读点列图时,要问:

这是哪个视场点?
包含了哪些波长?
光瞳光线是如何采样的?
图中的点是以主光线、质心还是理想像点为参考显示的?
比例尺是多少?
是否显示了艾里斑?

艾里斑的比较尤其有用。

如果几何光斑远大于艾里斑,几何像差可能很重要。

如果几何光斑远小于艾里斑,衍射可能占主导,光斑尺寸本身可能无法说明全部问题。

不要在接近衍射极限时过度解读点列图。

点列图可以非常有用,但它仍然是几何的。

它不显示衍射环。

它不直接显示对比度传递。

它不能替代PSF或MTF。

一个谨慎的解读是:

此点列图显示了针对该视场、该组波长、该孔径和该像平面的采样光线的几何落点模式。

这句话把图放在了适当的位置。


6. 光线扇形图:寻找结构,而不只是尺寸

光线扇形图显示了光线误差作为光瞳坐标的函数。

它回答:

光线误差如何在光瞳内变化?

这使得它在许多情况下比点列图更具诊断价值。

阅读光线扇形图时,要问:

曲线是对称还是非对称的?
它是否显示出类似球差的行为?
它是否显示出类似彗差的行为?
子午和弧矢扇形图是否不同?
不同波长是否分离?
优化后曲线是否变得平坦?

点列图可能显示一团点,而光线扇形图可以解释为什么这团点呈现那种形状。

把它当作一种结构诊断工具。

例如:

  • 轴上对称的扇形图可能暗示球差或类似离焦的行为;
  • 轴外不对称的扇形图可能暗示类似彗差的行为;
  • 子午和弧矢行为不同可能指向像散;
  • 颜色分离的扇形图指向色差效应。

光线扇形图不只是另一幅图。

它是观察实际光线如何偏离理想参考的最佳方式之一。


7. 波前和OPD:问清楚所用的参考

OPD是连接光线光学和衍射成像的桥梁。

它回答:

与参考波前相比,光瞳上每一点是超前还是滞后?

阅读OPD或波前图时,要问:

参考波前是什么?
使用的波长是多少?
单位显示的是长度还是波数?
是否去除了平移(piston)?
是否去除了倾斜(tilt)?
是否去除了离焦(defocus)?
使用的光瞳坐标是什么?
光瞳是否被渐晕或剪切?

这些问题很重要。

同一个物理波前,根据是否去除了平移、倾斜或离焦,看起来可能会不同。这不意味着软件在说谎,而是说明波前图是参考量。

以米或微米为单位的OPD是物理的光程差。

以波数(waves)为单位的OPD是按波长归一化的:

Wwaves=Wλ W_\text{waves} = \frac{W}{\lambda}

所以,一个在微米尺度上很小的波前误差,在短波长处以波数衡量时,可能仍然很大。

这就是单位如此重要的原因。

一个好的阅读习惯是:

在解读波前图之前,先确定波长、参考、去除项和光瞳定义。

然后才能判断图说明了什么。


8. 光瞳函数:记住振幅和相位

光瞳函数结合了孔径振幅和波前相位:

P(x,y)=A(x,y)exp(i2πW(x,y)λ) P(x,y)=A(x,y)\exp\left(i\frac{2\pi W(x,y)}{\lambda}\right)

当软件工具通过衍射计算PSF或MTF时,通常会涉及与此等效的表示。

所以,在阅读衍射结果时,要问:

使用了什么孔径掩模?
是否存在渐晕?
振幅是均匀的吗?
是否存在变迹?
是什么OPD产生了相位?
使用的波长是多少?
使用的是什么符号约定?

这一点很重要,因为PSF的变化不仅仅来自波前像差。

也可能来自光瞳振幅:

  • 中心遮挡;
  • 渐晕;
  • 孔径剪切;
  • 变迹;
  • 透过率变化;
  • 衍射或相位元件。

一个像差清晰的镜头可能振幅均匀但相位不均匀。

一个有遮挡的系统可能相位平坦但振幅不均匀。

两者都会影响PSF。

不要将PSF的每个特征都解读为“像差”,有些特征是孔径结构。


9. PSF:把它当作能量分布来读

PSF回答:

一个理想点源会在像平面产生怎样的强度分布?

阅读PSF图时,要问:

显示是线性还是对数的?
PSF是按能量还是按峰值归一化的?
像平面坐标单位是什么?
它代表哪个视场和波长?
是单色还是多色?
中心峰是否居中?
图像是否被裁剪?
采样程度如何?

线性和对数PSF显示讲述不同的视觉故事。

线性图强调中心能量集中度。

对数图揭示微弱的环、尾部和光晕。

两者都不是“真实的那一个”,它们是同一数据的不同显示方式。

可能的话,两种都读。

还要区分能量归一化和峰值归一化。

能量归一化:

PSF=1 \sum \mathrm{PSF}=1

对于比较能量如何分布很有用。

峰值归一化:

max(PSF)=1 \max(\mathrm{PSF})=1

对于在视觉上比较形状很有用。

但经过峰值归一化的PSF不能直接用于斯特列尔比(Strehl)比较,因为峰值已经被强制设为了1。

一个谨慎的PSF解读是:

在这个视场、波长、孔径、聚焦、采样和归一化条件下,
点源的能量去了哪里?

这就是PSF回答的问题。


10. MTF:把它当作频率响应的一种选定视图

MTF是OTF的幅值:

OTF=F{PSF} \mathrm{OTF}=\mathcal{F}{\mathrm{PSF}}

MTF=OTF \mathrm{MTF}=|\mathrm{OTF}|

它回答:

系统在不同空间频率下传递对比度的能力有多强?

但绘制的MTF曲线通常不是完整的二维MTF。

它是一条选定切片或一组切片。

阅读MTF曲线时,要问:

哪个视场点?
哪个波长或哪种波长加权?
什么孔径?
什么聚焦?
什么方向:弧矢、子午、径向、水平、垂直?
频率单位是什么?
是衍射MTF还是几何MTF?
在零频率处是否归一化为1?
对应用来说,哪个频率范围重要?

方向问题很重要。

弧矢和子午方向是相对于视场几何定义的。除非知道坐标系统,否则它们不会自动与水平和垂直阵列切片相同。

频率单位也很重要。

cycles/mm、cycles/degree和归一化频率不能互换。

一条在归一化轴上看起来很不错的曲线,放到传感器的像素间距下,意义可能就不同了。

一个更好的MTF阅读习惯是:

不要只问曲线高不高。
要问在哪个频率、对哪个视场、在哪个方向、在什么波长和聚焦条件下高。

这就是“读”曲线和仅仅“看”曲线的区别。


11. 始终将MTF与PSF关联起来

MTF有时会让人感觉抽象。当你有这种感觉时,就逆向回溯。

MTF
← OTF
← PSF
← 光瞳函数
← OPD
← 光线追迹
← 镜头处方

如果MTF在高频处很低,就问:

PSF是什么样的?

如果弧矢和子午MTF分离了,就问:

PSF或光线扇形图是否显示了方向性的模糊?

如果边缘视场的MTF很弱,就问:

在边缘视场,点列图、光线扇形图和OPD图显示了什么?

MTF曲线之所以强大,是因为它概括了对比度传递。它的局限在于,它压缩了模糊的空间结构。

把它和PSF一起用。

一对健康的阅读搭档是:

PSF显示点能量去了哪里。
MTF显示对比度如何按空间频率留存下来。

如果你把这两个视图放在一起,MTF就会变得不那么神秘。


12. 把优化输出当作“优化前/后”的论据来读

当软件说一个设计已经被优化时,不要只问:

评价函数值下降了吗?

要问:

哪些变量发生了改变?
包含了哪些操作数?
使用了哪些目标值?
使用了哪些权重?
哪些约束或边界处于激活状态?
什么改进了?
什么变差了?
什么没有被衡量?

评价函数值是一个压缩的分数。

较低的评价函数值意味着优化器降低了所定义的目标值。这并不自动意味着这个设计在每个有意义的方面都更好了。

一份谨慎的优化报告应该展示:

优化前后的镜头处方
优化前后的系统布局图
优化前后的操作数表格
点列图
光线扇形图
波前图
PSFs
MTFs
几何约束

这看起来可能很多,但这是理解发生了什么的最低要求。

优化器遵循的是评价函数,而不是你的意图。

所以,优化之后,要把结果当作一个论据来读:

设计在这些方面发生了变化。
这些指标改进了。
这些约束保持在可接受的范围内。
这些指标没有改进或没有被检查。
因此,对于这个已定义的任务,设计是更好的。

这比下面这种说法有力得多:

优化后的镜头,评价函数值更低。

13. 以同样的方式阅读可微光学的输出

可微光学增加了梯度,但没有消除解读的必要。

阅读可微优化结果时,要问:

哪些参数是可训练的?
优化的是哪种损失函数?
使用了什么物理模型?
包含了光线、波动光学、传感器采样和重建吗?
约束是平滑的、硬性的还是缺失的?
梯度是有限且稳定的吗?
结果是否在训练损失之外进行了验证?

一个下降的训练损失,不是一个完整的光学论据。

它只是一部分证据。

如果一个相位掩模、自由曲面或计算相机经过了端到端优化,仍然要要求进行经典检查:

PSF
MTF
视场行为
波长行为
公差
可制造性
传感器采样
噪声鲁棒性
分布外图像

可微光学令人兴奋,因为它为光学链附加了梯度。

但这条链仍然需要在物理上有意义。

一个稳妥的阅读习惯是:

用梯度来搜索。
用光学分析来理解。
用验证来信任。

这句话值得记住。


14. 完整的阅读检查清单

以下是你在阅读光学软件输出时可以使用的一份实用检查清单。

A. 系统定义

[ ] 镜头处方是什么?
[ ] 单位清楚吗?
[ ] 表面符号正确吗?
[ ] 材料正确吗?
[ ] 孔径光阑被定义了吗?
[ ] 半孔径或通光孔径合理吗?
[ ] 像平面在预期位置吗?
[ ] 视场和波长定义了吗?

B. 布局和一阶检查

[ ] 系统布局图在物理上看起来合理吗?
[ ] 光线通过了预期的孔径吗?
[ ] 有光线追迹失败吗?
[ ] 有效焦距接近预期值吗?
[ ] F数或数值孔径正确吗?
[ ] 光瞳量合理吗?
[ ] 如果相关,放大率正确吗?

C. 基于光线的分析

[ ] 点列图显示的是哪个视场和波长?
[ ] 比例尺清楚吗?
[ ] 艾里斑显示了还是单独计算的?
[ ] 光线扇形图能否解释光斑形状?
[ ] 弧矢和子午行为是否分开?
[ ] 色分离是否可见?

D. 波前分析

[ ] 使用了什么OPD参考?
[ ] 是否去除了平移、倾斜或离焦?
[ ] 单位是波数还是长度?
[ ] 使用了什么波长?
[ ] 光瞳掩模清楚吗?
[ ] OPD模式是否与光线扇形图诊断匹配?

E. PSF分析

[ ] PSF是从复数光瞳函数还是其他方法计算得出的?
[ ] 是单色还是多色?
[ ] 显示是线性还是对数?
[ ] 归一化是基于能量还是基于峰值?
[ ] 坐标轴是物理的、角度的还是基于像素的?
[ ] 采样是否充分?
[ ] 艾里斑尺度合理吗?

F. MTF分析

[ ] MTF是从PSF/OTF计算的还是通过其他近似方法?
[ ] 在零频率处归一化了吗?
[ ] 频率单位是什么?
[ ] 显示了哪些视场点?
[ ] 使用了哪些波长或权重?
[ ] 显示了哪些方向?
[ ] 截止频率合理吗?
[ ] 曲线是否在相同设置下进行比较?

G. 优化分析

[ ] 释放了哪些变量?
[ ] 使用了哪些操作数?
[ ] 分配了哪些目标值和权重?
[ ] 哪些边界和约束处于活动状态?
[ ] 评价函数值下降了吗?
[ ] 哪些个体操作数改进了?
[ ] 是否有任何重要指标变差?
[ ] 几何形状是否保持实用?
[ ] 结果是否在被优化指标之外进行了检查?

这份清单的目的不是让你谨慎到瘫痪。

它旨在让你的信心始终与证据挂钩。


15. 更简短的紧急检查清单

当你时间非常有限时,可以使用这个简短版本。

1. 哪个系统和配置产生了这个输出?
2. 绘制的确切量是什么?
3. 单位和归一化方式是什么?
4. 使用了哪些假设或参考?
5. 上游的哪一步计算产生了它?
6. 哪张其他的图应该能证实或质疑它?
7. 什么情况下这种解读会是错的?

最后一个问题尤其有用。

一个有说服力的解读应该是可证伪的。

例如:

解读:
边缘MTF低是因为轴外像散扩散了PSF。

检查项:
光线扇形图应该显示子午/弧矢分离。
OPD应该显示视场相关的像散结构。
PSF应该呈方向性扩散。

如果这些检查不通过,就修正解读。

这就是你如何从“看图”转变到“光学推理”。


16. 一个简短的输出阅读模板

对于你自己的实际工作,可以为每张重要的图写一个简短报告。

使用这个模板:

输出:
配置:
输入数据:
计算路径:
单位和归一化:
主要观察:
交叉验证:
局限性:
下一步行动:

例如:

输出:
第16章 Cooke Triplet 优化报告。

配置:
使用固定的 optiland==0.6.0 配套代码,对三视场、三波长 Cooke Triplet 进行分析。

输入数据:
Cooke Triplet 镜头处方,选择半径和后焦距作为优化变量。

计算路径:
镜头处方 -> 光线追迹 -> 光斑RMS评价函数 -> 有界 L-BFGS-B 优化。

单位和归一化:
光斑RMS评价函数,单位为 mm²。当所选视场的RMS光斑半径更低时,该评价函数值更低。

主要观察:
第16章配套运行将光斑RMS评价函数值从 1.6625847615e-4 降低到了 1.5389416611e-4,降低了 7.44%。

交叉验证:
优化历史记录在 figures/chapter_16/cooke_optimization_history.csv 中,评价函数值曲线图记录在 figures/chapter_16/cooke_merit_optimization.png 中。

局限性:
本次运行证明了有界优化路径可以执行并降低了定义的评价函数。它不能替代完整的设计验收评审。

下一步行动:
在接受该设计之前,检查系统布局图、光斑、光线扇形图、波前、PSF、MTF和几何约束。

这种报告一开始可能会觉得冗长,但却非常有效。

它迫使输出位于计算链之内。


17. 你现在能做到的事

如果你跟上了本书,你现在已经具备了一些具体的能力。

你能阅读镜头处方

你知道镜头处方是一种数据结构:

表面
半径
厚度
材料
孔径
非球面项
像平面

你知道计算是从这里开始的。

你能够从概念上追迹一条光线

你知道一条光线有原点、方向、波长,有时还有强度或偏振态。

你知道它的传播方式为:

r(t)=r0+td \mathbf{r}(t)=\mathbf{r}_0+t\mathbf{d}

你知道它根据表面法线和折射率与表面相交并发生折射。

你能够理解实际光线与近轴光线

你知道近轴光学提供了一阶骨架。

你知道实际光线揭示了像差。

你知道两者都很重要。

你能够解读点列图和光线扇形图

你知道点列图是光线交点的分布。

你知道光线扇形图显示了误差在光瞳上的结构。

你知道两者都不等于衍射PSF。

你能够理解OPD和波前误差

你知道OPD将几何路径计算与波前相位联系起来。

你知道在解读OPD时,必须考虑波长、参考波前和去除项。

你能够构建光瞳函数

你知道光瞳函数是:

P(x,y)=A(x,y)exp(i2πW(x,y)λ) P(x,y)=A(x,y)\exp\left(i\frac{2\pi W(x,y)}{\lambda}\right)

你知道它结合了孔径振幅和相位。

你能够从光瞳函数计算PSF

你知道PSF来自于傅里叶变换后的光瞳场幅值的平方:

PSF=F{P}2 \mathrm{PSF}=|\mathcal{F}{P}|^2

你知道采样、补零、居中和归一化都很重要。

你能够从PSF计算MTF

你知道:

OTF=F{PSF} \mathrm{OTF}=\mathcal{F}{\mathrm{PSF}}

MTF=OTF \mathrm{MTF}=|\mathrm{OTF}|

你知道MTF曲线通常是二维频率响应的一个切片。

你能够理解优化

你知道评价函数通常是操作数误差的加权和。

你知道变量、目标值、权重、边界和约束定义了优化器能做什么。

你知道更低的评价函数值并不自动等同于更好的设计。

你能够在合适的层面上理解可微光学

你知道可微光学为光学计算链附加了梯度。

你知道如果计算路径是可微的,自动微分可以通过光线、波动、传感器和重建模型进行优化。

你也知道梯度并不能消除对物理、约束、采样和验证的需求。

这是一个相当可观的工具箱。


18. 你不应得出的结论

同样重要的是,要知道本书没有宣称什么。

本书本身不能让你成为专业的光学设计师。

它不能替代多年的设计经验、制造知识、公差分析、杂散光控制、镀膜设计、光机设计或系统工程。

它不是说最小的Python脚本就足够用于生产工作。

它不是说Optiland或任何开源工具就应该在每个工程环境中盲目地替代成熟的商业工具。

它不是说MTF不好。

它不是说经典光学设计已经过时了。

本书的主张更具体,也更有用:

如果你能看到光学软件输出背后的计算链,
你就能更快地学习,更好地调试,并以更好的理由信任结果。

这就是承诺。


19. 如何继续学习

接下来有几个自然的路径。

路径1:更深入的几何光学

学习更完整的像差理论:

三级像差
光瞳像差
场曲
畸变
色差校正
光阑移动效应

这将使光线扇形图和波前图更有意义。

路径2:傅里叶光学

更深入地钻研:

相干成像
非相干成像
部分相干
光瞳自相关
采样理论
传递函数
相位传递

这将使PSF、OTF和MTF感觉不那么像孤立的公式。

路径3:光学设计实践

过一遍实际的镜头示例:

单透镜
双胶合透镜
Cooke三片组
类似天塞镜头的形式
简化的显微镜物镜
长焦或广角布局

在优化之前先分析,然后优化,再进行比较。

路径4:数值方法

学习:

求根
最小二乘法
梯度下降
自动微分
条件数
局部极小值
参数缩放

这将使优化不那么神秘。

路径5:计算成像

探索:

波前编码
衍射光学
相位掩模
传感器模型
去卷积
学习式重建
端到端可微设计

这是经典光学和现代计算交汇的地方。

根据你想构建的东西选择一条路径。

本书的基础应该对所有这些路径都有所帮助。


20. 最终回到MTF曲线

让我们回到一开始的那条曲线。

想象一下,你现在正在看一张MTF图。

旧的阅读方式是:

曲线高或是低。
镜头好或是坏。

新的阅读方式是:

这条曲线是OTF幅值的一个选定切片。
OTF来自PSF的傅里叶变换。
PSF来自复数光瞳函数。
光瞳函数编码了孔径振幅和OPD相位。
OPD来自通过系统的光程差。
这些光程来自追迹的光线。
这些光线来自镜头处方、材料、视场、波长、孔径和聚焦设置。

这要长得多的读法。

但这也更加有用。

现在你可以问:

哪个视场弱?
哪个方向弱?
哪个频率重要?
这个弱点在PSF中可见吗?
波前能解释它吗?
光线扇形图显示了像差结构吗?
优化能改进它吗?
改进它的代价会是什么?

这条曲线不再是一个终点。

它是回到系统内部的一扇门。

这就是本书旨在促成的实际转变。


21. 知晓计算链的从容自信

理解计算链,会带来一种特别的从容自信。

它不是记住名称的自信。

不是按下一个按钮然后希望软件正确的自信。

也不是假装复杂事物很简单的自信。

它比那些更沉静。

听起来是这样的:

我可能还不知道每一个细节,
但我知道这个结果需要什么输入,
是什么计算产生了它,
它依赖于哪些假设,
以及我接下来应该检查什么。

这足以让你继续下去。

光学设计充满细节。没有哪一本书能抹去这一点。

但一旦计算链变得可见,细节就变得可以驾驭了。

你可以把每个新概念都放到合适的位置:

这是关于镜头处方的吗?
这是关于光线追迹的吗?
这是关于近轴结构的吗?
这是关于像差的吗?
这是关于波前的吗?
这是关于衍射的吗?
这是关于采样的吗?
这是关于优化的吗?
这是关于验证的吗?

这幅地图是本书真正的成果。


22. 最终的能力检查清单

下面是蓝图所承诺的最终能力清单。

在读完本书后,你应该能够:

[ ] 将一个基本的镜头处方作为一个计算数据表来阅读。
[ ] 解释一条光线在代码中如何被表示。
[ ] 描述一条光线如何在一个表面处相交并折射。
[ ] 理解为什么实际光线与近轴光线不同。
[ ] 解读焦距、F数、数值孔径和其他一阶量。
[ ] 解释点列图计算了什么。
[ ] 解释光线扇形图揭示了什么。
[ ] 解释OPD和波前误差的含义。
[ ] 将OPD转换为光瞳相位。
[ ] 从振幅和相位构建复数光瞳函数。
[ ] 解释如何从光瞳函数计算PSF。
[ ] 解释如何从PSF计算OTF和MTF。
[ ] 检查采样、归一化、FFT平移和频率轴问题。
[ ] 理解评价函数是什么。
[ ] 将优化输出作为一个“之前/之后”的设计论据来阅读。
[ ] 理解自动微分为光学优化增添了哪些能力。
[ ] 当光学软件给你一幅图时,提出更好的问题。

你不需要立即在所有方面都做到完美。

但它们都不应该再像魔法一样了。


23. 关于工具的最后几句话

本书使用Optiland作为一个开放的参考点,因为开放工具使计算更容易检查。

但主角从来不是某一个工具。

主角是那条计算链

当你知道该向它们询问什么时,商业软件、开源库和你自己的教学脚本都是有价值的。

一种对待工具的成熟态度是:

使用强大的软件。
尊重它的复杂性。
检查它的输入。
理解它的输出。
在需要学习时,重现一些小部分。
不要混淆界面和计算。

这就是平衡。

你不需要从零开始重建每一个光学设计工具。

但是,重建一些小部分,能教会你工具在做什么。

一旦你这样做了,软件输出就会变得不那么令人生畏,而更具信息性。

这正是我们想要到达的地方。


章节摘要

这最后一章将本书的计算链转化为一种阅读光学软件输出的方法。

核心规则是:

绝不孤立地读图。
要阅读其背后的系统、配置、计算路径、单位、归一化和假设。

一个镜头输出应被回溯到:

镜头处方
→ 系统布局图
→ 近轴分析
→ 实际光线追迹
→ 点列图和光线扇形图
→ OPD和波前
→ 光瞳函数
→ PSF
→ OTF
→ MTF
→ 评价函数和优化

点列图显示光线交点。光线扇形图显示光瞳上的误差结构。OPD显示相对于参考的波前误差。光瞳函数编码振幅和相位。PSF显示点源能量分布。MTF显示按空间频率的对比度传递。优化通过更改变量来降低定义的评价函数。可微光学将梯度附加到这条相同的链上。

对于本书开篇的问题,最终答案现在很清楚了:

一条MTF曲线并非来自软件按钮。
它是一条漫长光学计算链的最终可见结果。

一旦你能够看到那条链,你就能以更多的耐心、更多的怀疑和更多的从容自信来阅读光学软件输出。

生成的验证图

从第18章验证检查生成的输出阅读检查清单