Cooke Triplet 镜头教程(A 部分):光学响应
引言
Cooke Triplet 是最具影响力的摄影镜头之一。它由 T. Cooke & Sons 的 H. Dennis Taylor 于 1893 年申请专利,提出了光学工程中的一个新概念:三片式镜头结构,其中前后各有一个强正透镜元件,中间由一个负弯月形透镜隔开。该结构虽然简单但优雅,使 Cooke Triplet 能够同时校正多种光学像差——包括球差、彗差、像散、场曲和畸变——同时仍保持紧凑且易于制造。一个多世纪以来,Cooke Triplet 一直是许多摄影与投影镜头的基础。该设计的现代衍生形式至今仍出现在变焦镜头、手机光学以及紧凑成像系统中。 其兼具简洁性、可调性与优异性能,使其成为演示光学建模概念的理想系统。
在本教程中,我们将使用 Cooke Triplet 来说明 OghmaNano 光线追迹工具和 S-plane 编辑器 的关键特性,并在此过程中研究 Cooke Triplet 如何影响通过它的光的光谱。
加载 Cooke Triplet
首先,在主窗口中点击 New simulation 按钮,这将打开新建仿真窗口 (??), 双击 Ray tracing 图标。这将打开光线追迹示例库 (??)。
在列表中找到标记为 Cooke triplet 的条目并双击。系统会提示你选择本地磁盘上的一个目录来存放仿真文件;选择合适的文件夹并点击 OK。OghmaNano 将以已加载 Cooke Triplet 场景的状态打开。
加载后,Optical Workbench 主窗口将类似于 ??。 中央的三片彩色透镜为 Cooke Triplet 元件: 前方为正透镜(红色),中间为负透镜(橙色),后方为正透镜(黄色)。左侧是代表光源的绿色平面;右侧是代表图像探测器的洋红色平面。红色的平面物体是一个光阑,用于控制进入成像系统的光量。在本示例的这一部分中,它是完全打开的,因此所有光都可以通过,也因此可以忽略。它将在 C 部分 中详细讨论。
在黑色背景上按住 鼠标左键 点击并拖动以旋转场景。花一点时间围绕系统旋转,以便看到三片透镜与两块平面在 3D 中的排列方式。
接下来,通过点击 Device structure 选项卡左侧工具栏中的 S plane 按钮打开 S-plane 编辑器 (也可在 ?? 中看到)。 这将打开 S-plane 表格,如 ?? 所示。
S-plane 编辑器提供了 3D 透镜组的“逐表面(surface-by-surface)”视图。 每一对行对应一片透镜的前、后表面。 各列列出了 光学材料、透镜类型、曲率半径 r0、厚度与 直径。 尝试将 ?? 中的每一片彩色透镜与 ?? 中对应的那一对行匹配起来。 当你之后在此表中编辑数值时,主窗口中的 3D 透镜会相应移动并重新成形。
虽然 OghmaNano 是完全 3D 的,但引入 S-plane 表示仍然很有用,其中透镜被分解为一系列左、右表面。 这种方法与许多成熟的光线追迹工具的工作方式相呼应,尤其是那些在有效意义上为 1D 或 2D,并假设光从左到右单向传播、穿过由用户定义的一系列光学表面的工具。S-plane 视图在实践中非常有用。它允许直接从其他光学仿真器以及经典镜头设计文献中导入表面表格,从而使重现并研究历史与现代光学系统变得直接。它还提供了一种紧凑、直观的方式来编辑透镜参数——曲率半径、厚度、材料与光阑——而无需承担完整 3D 几何操作的开销。
需要注意的是,S-plane 纯粹是一种编辑与组织结构:所有光线仍在完整的 3D 空间中追迹,并且得到的光学行为与同一系统的显式 3D 模型完全一致。
运行仿真
当你熟悉几何结构后,点击主工具栏中的 Run simulation 按钮(蓝色三角形)运行光线追迹仿真。运行完成后,场景将类似于 ??, 你会看到一束蓝色光线束,表示光从光源传播到探测器的路径。
为了对结果进行定量分析,切换到 Optical Workbench 的
Output 选项卡。你会看到类似于
??
中的文件列表。这里,detector0 对应洋红色探测器平面。
双击 detector0 以打开其输出目录。
detector0 包含记录在洋红色探测器平面上的数据。
detector0 文件夹内的文件。这些包括渲染图像以及随波长变化的探测效率。
在 detector0 内你会找到多个结果文件
(??),
包括:
RAY_image.csv– 渲染后的探测器图像。detector_efficiency0.csv– 总体探测效率随波长的变化。
双击 RAY_image.csv 以打开渲染图像查看器
(??)。
这显示了光通过 Cooke Triplet 后在探测器平面上的强度分布。图像并非纯白——灰色调反映了只有一部分发射的光线实际到达了探测器,这是由于透镜系统内部的反射与截光损耗造成的。
?? 中所示的曲线说明了 Cooke Triplet 的波长相关探测效率。 该曲线给出了从光源平面发射的光线在穿过三片透镜后成功到达探测器的比例。由于每个表面都会引入反射、折射以及潜在的截光损耗,收集到的功率总是低于发射功率。效率随波长逐渐上升表明 triplet 对长波光的透过略更有效,这一行为与较高波长处折射率对比降低以及色差偏离更小相一致。该指标是衡量光学系统成像效果以及内部光损失程度的关键指示量。
detector_efficiency0.csv 得到。这表明在每个波长处来自光源的光线有多少比例被探测器收集。
渲染图像与效率-波长曲线共同提供了对 Cooke Triplet 将光传递到探测器效果的第一份定量观察。在本教程后续部分中,我们将通过 S-plane 编辑器修改透镜曲率与间距,并观察这些诊断量如何变化。
光学系统对光的影响。
在本节中,我们将移动探测器平面,使其位于 Cooke Triplet 前方而不是后方。 这有助于将由光学系统造成的损耗与由光源或探测器设置造成的损耗区分开来。
在主 3D 视图中,点击探测器平面(紫色方块)。然后在按住 Shift 键的同时,将探测器向左拖动,使其位于光源之后不远处,如 ?? 所示。 按住 Shift 会禁用对象吸附,这样你就可以让探测器穿过其他 对象而不会意外重新选择它们。
重新定位探测器后,再次点击 Run simulation 按钮。光线追迹完成后,返回 Output 选项卡,打开 detector0,然后打开
detector1。与之前一样,双击 RAY_IMAGE.csv 和
detector_efficiency0.csv 以查看新的探测器图像与效率曲线
(?? 和
??)。
当探测器位于光学系统前方时,所有发射的光线都会在不穿过任何玻璃的情况下击中探测器。因此,渲染图像呈现明亮的纯白,而 ?? 中的效率曲线在约 100 % 处为一条水平线。下一步,将探测器移回其位于透镜组后方的原始位置,以便我们再次分析完整 Cooke Triplet 的性能。
提高波长分辨率
到目前为止,Cooke Triplet 仿真仅使用了三个波长:红、绿、蓝。 这在彩色光线追迹中是一种常见做法,因为与 RGB 三原色大致对应的三个采样点 足以在渲染图像中再现颜色外观。 这三个波长对应于 ?? 中显示的点。
然而,尽管三个波长非常适合颜色表示,但它们不足以生成 诸如透射或效率曲线等准确的光谱图。 为了得到具有有意义分辨率的波长相关曲线,我们需要增加采样波长的数量。
我们首先打开 Optical mesh 编辑器。 转到 Optical 功能区(如 ?? 所示)并点击 Optical mesh 按钮。 这将打开当前的波长网格,如 ?? 所示。
删除现有的三行,然后点击 + 按钮添加新行。 将其配置为与 ?? 一致:
- Start: 200 nm
- Stop: 1500 nm
- Points: 20
- Step multiply: 1.0(均匀间隔)
这样可以在保持可计算时间可控的同时,获得更平滑的光谱采样。 请注意,尽管增加波长数量会增加仿真时间,但 OghmaNano 会在 CPU 核之间并行化 不同波长的计算。 因此,在多核机器上,将波长数加倍并不会使墙钟时间加倍。
现在再次按下 Run simulation 按钮。
仿真完成后,返回 detector0 并打开
detector_efficiency0.csv。
你现在应能看到一条平滑的光谱效率曲线,如
?? 所示。
在约 300 nm 以下效率的陡降反映了众所周知的事实:常见光学 玻璃在紫外区吸收很强。 这一物理效应在许多历史轶事中都有体现。例如,Richard Feynman 描述过他在一辆吉普车里观察第一次核试验而眼睛未受伤,是因为玻璃挡风玻璃阻挡了有害的 UV 闪光 (见其著作 Surely You're Joking, Mr. Feynman!)。
你现在可以做什么(A 部分)
- 在 Optical Workbench 中加载并浏览 Cooke Triplet 演示。
- 运行光线追迹并在
detector0中找到关键输出。 - 解读结果:将
RAY_image.csv作为探测器强度分布图,并将detector_efficiency0.csv作为完整透镜组随波长变化的通光量。
核心思想:探测器图像告诉你光落在哪里;效率曲线告诉你随波长变化有多少光能穿过光学系统。
当结果看起来“不对”时的常见检查
- 确认探测器位于透镜组后方(不要在诊断步骤后仍留在前方)。
- 打开的是
detector0(洋红色平面),而不是其他探测器文件夹。 - 图像使用粗网格(RGB),光谱使用密集网格(多点)以获得平滑曲线。
👉 下一步:继续阅读下一页教程 B 部分