OpticStudio如何计算光瞳偏移

概述

这篇文章介绍了什么是光瞳偏移 (Pupil Shift) 以及“自动计算光瞳偏移 (Automatic Calculation of Pupil Shifts)”功能是如何进行计算的。本文使用的附件请从以下链接中下载:

https://customers.zemax.com/ZMXLLC/media/Knowledge-Base/Attachments/04025_Pupil-Shift-sample_file.zar


什么是光瞳偏移

光线瞄准算法是一个非常强大的功能,它可以在系统存在较大光瞳像差或光瞳存在倾斜/偏心时正确的瞄准光线以确定光瞳位置。但是该算法需要首先找到一条到达光瞳表面的光线,再根据这条光线进行迭代,来找到正确的光瞳坐标。在默认情况下,算法将首先尝试计算近轴入瞳下的中心光线。如果这条光线没有到达光瞳面,则算法将围绕近轴入瞳尝试计算不同方向的光线。然而,对于光瞳像差特别大或光瞳严重倾斜/偏心的系统来说,如果算法没有找到任何光线可以到达光瞳面,则算法将无法确定物空间坐标。在这种情况下,OpticStudio会提示如下错误信息:

当光线瞄准功能由于此原因而失败时(这种情况较少出现),我们需要帮助给迭代算法输入一个更合适的初始解。您可以在系统设置 > 光线瞄准菜单中的光瞳偏移(需要在未勾选“自动计算光瞳偏移 (Automatically Calculate Pupil Shift)”的情况下进行设置)中输入预估坐标偏移量,其中该偏移量参考于近轴入瞳中心点坐标(默认情况)。该参数只需确认大致范围即可,并且只有在算法无法确认光瞳面时才需要进一步提高精度。一旦OpticStudio成功追迹了一根到达光瞳面的光线,则算法在接下来的迭代计算中无需其他帮助。

当开启光线瞄准功能时,系统将默认勾选“自动计算光瞳偏移”。OpticStudio会自动计算近轴入瞳面与光瞳的差,并提供给光线瞄准算法一个合适的初始解。本文接下来给出的示例将展示如何手动计算光瞳偏移。在OpticStudio中,自动计算的过程与下例使用的计算原理是相同的。


手动计算光瞳偏移

下面我们将展示如何手动计算光瞳偏移。打开本文提供的示例文件,初始系统的布局图如下所示:

当未开启“光线瞄准”功能时,我们可以看到数据报告 (Prescription Data) 中给出的系统近轴入瞳的Z轴位置。其中该参数为相对于当前系统的表面1的距离:

在当前示例系统中,表面1也是系统的全局坐标参考面 (Global Coordinate reference Surface),因此3D布局图中的坐标参数都是相对于表面1的,这和数据报告中入瞳位置的参考点是相同的。您可以在对应表面的表面属性 (Surface Properties) > 类别 (Type) 中设置全局坐标参考:

在3D布局图中将视图调整至Y-Z平面并开启窗口光标 (Active Cursor),移动光标至物体并读取物体表面顶点的坐标。我们将根据这个坐标追迹一根实际光线至物体表面顶点(或附近的位置)。目前为止,我们不需要考虑坐标读取精度的问题。

将3D视图调整至X-Z平面,使用相同的方法使用窗口光标读取表面顶点的X轴坐标。设置完成后,将光线瞄准设置为“实际 (Real)”并取消勾选“自动计算光瞳偏移”选项。将光标测量的坐标值输入到光瞳偏移数据栏中。在本例中偏移参数为:X=0;Y=+30;Z=29.93-30(该结果与0接近,因此Z=0)。

需要注意的是,如果您在不设置任何光瞳偏移的情况下使用光线瞄准,则系统将提示如前文所示 “无法确定物空间坐标”的错误信息。当完成光瞳偏移的输入后,光线瞄准算法将正确的定位光瞳的位置并追迹所需的光线以充满光瞳。


自动计算光瞳偏移

在上一节中给出的例子只是用来说明光瞳偏移是如何计算的。在OpticStudio中的“自动计算光瞳偏移”选项将自动完成这一计算,并且系统在开启近轴或实际光线瞄准时会默认勾选该功能。因此,光瞳偏移的XYZ坐标输入栏在勾“自动计算光瞳偏移”时会被隐藏。

然而当取消勾选“自动计算光瞳偏移”时,系统将弹出XYZ轴光瞳偏移坐标的输入栏。


小结

这篇文章简单介绍了开启光线瞄准时系统是如何计算光瞳偏移的。光线瞄准是一个非常强大的功能,在绝大多数情况下它可以在没有用户干预的情况下计算出存在光瞳像差或倾斜/偏移光瞳的光瞳位置。当开启光线瞄准功能时,系统默认使用“自动计算光瞳偏移”功能。您也可以手动输入光线瞄准迭代算法的初始参数。