光线沿着直线传播,并且在界面上按照斯涅尔定律折射 ,这是我们普遍认知的光线追迹形式。
这显然描述的是均匀的、折射介质的光线追迹。这是不够的,比如前两天知乎推给我一个问题:为什么平面渐变折射率透镜可以折射光线?
以及经常会被人问到,衍射相位面的光线追迹公式是哪里来的?趁着假期有空,这两个问题就一并处理了。
先讲知乎上的这个问题,我估计提问者脑中想象的渐变折射率是一个个均匀折射率的单元格组成的,这样的话,确实光线不应该会偏折。但其实不是的。连续的渐变折射率是会对光线传播产生类似“动量”的。而且提问者也应该弄混淆了光线在界面上折射偏折和在介质中传播这两个机理。
在非均匀的介质中,光线的传播的方式:
其中r为方位向量,s为光线轨迹,n为介质折射率。注意到在渐变折射率介质中,n=f(x,y,z),所以等式右边折射率梯度不为0,所以光线在渐变折射率介质中会弯折,且容易证明总是折向更高折射率的一边。以上公式推导可以从Principles of Optics, Born&Wolf的3.1~3.2章中获取。
有了正确的公式之后的数值算法就不难了,Zemax如果我没有理解错的话,就进行了简单的有限差分步长来做,有很多求解微分方程更准确的方法,比如Runge-Kutta等,这类paper多如牛毛,就不再赘述了。
事实上,要回答这个问题也可以打开Zemax的GRIN DLL的C语言文件看一下,很明显就是用了折射率的梯度来进行计算的。
处理完介质,我们再来说一下在界面上,当光线追迹经过衍射相位面时是怎么一回事。其实很多地方都给出了如下公式:
L' = L + (λ/2π)(∂φ/∂x)
M' = M + (λ/2π)(∂φ/∂y)
此处的L是X方向余弦,M是Y方向余弦,φ是该位置上由于衍射面带来的额外相位。衍射相位面对于光线追迹的作用,在衍射面(Binary2等)、CGH、还有meta-surface系统的设计中十分常见,所以我们来看一下meta大佬Capasso是怎么讲这个公式以及怎么用这个公式的:
From: Light Propagation with Phase
Discontinuities: Generalized Laws of Reflection and Refraction
以上的公式(2)中的sinΘ = L,这里就简单直接地导出了相位面光线追迹的公式。
有了这个公式之后,其实我们就可以简单地把衍射相位面,或者meta-surface作为一个phase profile来放进光线追迹软件和其它的lens一起设计优化了——这也是折衍射混合设计最经典的workflow。
当phase profile设计完成之后,当然还需要把它转化成衍射光栅或者meta-surface的纳米柱。这个计算过程,在以下参考文章中也能找到,此处也不赘述。
How
to design DOE lens or metalens in OpticStudio
How
to calculate the sag of a diffractive optical element with a macro
总结一下,要理解物理过程的本质而不是特例。认知不能停留在低水平上闭环,还是要提高自己的姿势水平。