序列模式进行光线追踪(ray tracing)的逻辑是基于ABCD矩阵,即:
以两个平面为参考面,分别为输入平面与输出平面,这两个平面均垂直于系统的光轴。此外,为了理论的一般性,我们定义系统的光轴即直角坐标系的z轴。一光线与输入面呈 θ1,从距离光轴 x1的入射面进入系统,并在距光轴的 x2的输出面呈 θ2射出,而 n1, n2分别是在输入面与输出面中介质的折射率。这些参数可表成下列关系式:
但是,这一计算模式下若是入射角大于全反射角,即布鲁斯特角,其仍然会有输出光线的解,而实际上大于布鲁斯特角的光线将会产生全反射现象,因此入射角θ1必须小于该光线介质材料布鲁斯特角,否则即为TIR报错。而非序列模式(non-sequential mode)由于是对单个光线按照射线在由源发射后与对象发生物理相互作用的顺序从光源到对象和感测器。光线可能与物体多次相互作用,或者根本不与物体相互作用。在每个界面处,父光线可以分裂成多个子光线,这些子光线可以透射、反射、吸收或散射,因此不存在TIR报错。但也因此非序列模式适合分析杂散光、散射和照明,不适合像差分析优化。
避免TIR报错通常有以下几种方法:
1. 减小视场/数值孔径以消除 TIR
2. 应用RAID/MXAI/MXRE/MXRI来约束入射角:
3. 优化镜片形状以减小入射光角度
4. 在优化向导(optimization wizard)中尝试 HYLD
5. 找玻璃库里布鲁斯特角较大的玻璃材料
6. 拆分镜片,将具有较大曲率的镜片拆成若干个,分成多次折射,这一策略经常出现在显微镜高倍物镜设计中。
7. 改成反射式镜组,但这个难度最高。