Ansys Zemax | 使用衍射光學器件模擬增強現(xiàn)實 (AR) 系統(tǒng)的出瞳擴展器 (EPE):第 4 部分
附件下載
聯(lián)系工作人員獲取附件
在 OpticStudio 中使用 RCWA 工具為增強現(xiàn)實(AR)系統(tǒng)設置出瞳擴展器(EPE)的示例中,首先解釋了k空間中光柵的規(guī)劃,并詳細討論了設置每個光柵的步驟。
介紹
本文是該四篇文章系列中的最后一篇,展示了如何檢查封裝圖并模擬瞳擴展器系統(tǒng)的圖像。此外,我們還討論了 EPE 系統(tǒng)可能的改進方案及其他需考慮的因素。如需更多詳細信息,請查閱系列中其他文章的鏈接。
如何在 OpticStudio 中使用衍射光學器件模擬增強現(xiàn)實 (AR) 系統(tǒng)的出瞳擴展器 (EPE):第 1 部分
如何在 OpticStudio 中使用衍射光學器件模擬增強現(xiàn)實 (AR) 系統(tǒng)的出瞳擴展器 (EPE):第 2 部分
如何在 OpticStudio 中使用衍射光學器件模擬增強現(xiàn)實 (AR) 系統(tǒng)的出瞳擴展器 (EPE):第 3 部分
獲取 MTF 的方法
由于該系統(tǒng)采用非序列模式構建,因此計算 EPE 增強現(xiàn)實(AR)系統(tǒng)的調制傳遞函數(shù)(MTF)存在一定難度。為解決這一問題,我們提供了兩種方法:
(1)使用 Detector Rectangle 提供的幾何MTF數(shù)據(jù)直接進行計算;
(2)采用帶有 Detector Rectangle 的 Huygens 點擴散函數(shù)(PSF)方法,并在外部軟件(如MATLAB)中將 PSF 轉換為MTF。
接下來的一節(jié)將詳細介紹這兩種方法。
方法 1:幾何 MTF
幾何MTF的計算過程相對簡潔,只需按照以下步驟操作:
1. 打開本系列文章前一部分(即第3部分)中的示例文件:“step5_image_simulation.zar”。
2.在文件中,忽略并隱藏 Slide 對象。

圖 1.忽略和隱藏對象。
3. 將 Source DLL 更改為 Source Point 參數(shù),如圖 2 所示。

圖 2.源點的參數(shù)值。
4.使用 X 半寬=0.005和 Y 半寬=0.005的參數(shù)來縮小最終的檢測器圖像。

5. 在追蹤光線之后,我們可以觀察到幾何點擴散函數(shù)(PSF)和調制傳遞函數(shù)(MTF),如圖3所示。需要注意的是,圖3中的結果并不符合實際情況,因為聚焦點遠小于艾里斑。這主要是由于該系統(tǒng)采用了理想的鏡頭模型(即近軸透鏡)來模擬光引擎和人眼系統(tǒng)。然而,即便在用戶考慮光引擎部件的實際鏡頭系統(tǒng)時,對幾何 PSF/MTF 的分析仍然可能具有一定的參考價值。

圖 3.幾何 PSF 和 MTF。
制備衍射 PSF/MTF 的計算
在深入探討如何計算衍射點擴散函數(shù)(PSF)/調制傳遞函數(shù)(MTF)之前,我們需要進行兩項關鍵的調整,以確保在非序列模式下能夠準確處理光線的相位?;谏弦还?jié)關于幾何 PSF/MTF 的討論,我們將按照以下步驟進行操作。所有提及的更改均已被保存在名為“step6_calculate_PSF.zar”的文件中,該文件可以聯(lián)系工作人員獲取附件。
用用戶定義的衍射 DLL 替換近軸透鏡
兩個近軸透鏡對象被替換為了一個具有用戶自定義衍射功能的DLL——“NSC_Paraxial_Lens.dll”所實現(xiàn)的衍射光柵。這個DLL的設計目的是模擬近軸透鏡的工作方式,并且能夠正確地處理光線的相位信息。在撰寫本文時,非序列模式下的內置近軸透鏡對象尚無法準確計算輸出光線的相位,導致所有相干分析的結果都不準確。這款衍射 DLL 可以應用于任何需要使用近軸透鏡并進行相干分析的場合。
在使用“NSC_Paraxial_Lens.dll”時,需要注意以下幾點限制:
1.DLL 對 NSC_Paraxial_Lens 兩側材料的折射率有所要求,只能為1.0,或者光線在撞擊物體時會終止。但在本例中,由于近軸透鏡處于空氣中,折射率滿足要求,因此這一限制可以根據(jù)用戶請求進行刪除。
2.DLL 假定光線是從 -z 側入射的。如果從 +z 側照射到衍射面,光線將終止。為了解決這個問題,第二個衍射光柵對象被繞X軸旋轉了180度,以確保光線來自衍射透鏡的 -z 側。這一限制同樣可以根據(jù)用戶請求進行刪除。
3.DLL 僅適用于0級傳輸光,其他級次的光將被忽略。因此,用戶應將起始級次和終止級次都設置為0,設置為其他數(shù)字將沒有意義。這一限制是無法刪除的,因為它符合 DLL 的工作原理。
4.DLL 僅適用于已定義的共軛物,即物體和像的距離已知時才能正常工作。這是一個無法消除的限制,因為近軸透鏡是一個虛擬且不切實際的組件。因此,建議設計人員在設計成熟時,改用包含像差在內的真實光引擎系統(tǒng),以評估更真實的條件。

圖 4.近軸透鏡被具有衍射 DLL NSC_Paraxial_Lens.dll的衍射光柵所取代。
使用 User Defined Object + Polygon_grating.dll 重新定義第二個(旋轉)光柵
在撰寫本文時,我們已修復了一個錯誤,即原先 Boolean Native/CAD 在處理光線相位方面存在不足。為解決這一問題,我們采用了用戶定義的對象(User-Defined Object)來重新構建了第二個格柵,具體使用的是Polygon.dll。該用戶定義的對象允許用戶直接定義一個多邊形板,其頂點坐標可通過對象參數(shù)(如p1x、p1y、p2x、p2y等)來指定。相較于使用 Boolean Native/CAD 來制作多邊形板,這種方法提供了更高的便利性和靈活性。

圖 5. 3個對象,布爾原生、凸出和衍射光柵,被用戶定義的對象 DLL + Polygon_grating.dll 替換。
檢查 RCWA DLL 的版本
為了準確處理光線的相位信息,必須采用在2021年4月18日之后編譯的 RCWA DLL。這個 DLL 可以通過 RCWA 可視化工具來訪問,該工具位于“Programming”選項卡的“User Extensions”下,具體可參考圖6所示。

圖6.在 RCWA 可視化工具中檢查 RCWA DLL 版本。
用于獲取瞳孔函數(shù)和惠更斯 PSF 的檢測器
如圖 7 所示,在 Annulus 對象之后設置了一個檢測器,用于檢查截短的瞳孔函數(shù)以進行分析。

圖 7.在眼框處層壓的四個對象。

圖 8.截斷的瞳孔功能。左側顯示相干輻照度。右側顯示 Coherent Phase。
此外,在計算惠更斯點擴散函數(shù)(PSF)時,需將 PSF Wave# 設置為眼圖系統(tǒng)檢測器的一個非零值。這個數(shù)值代表 System Explorer 中設計人員想要評估的光波長的波數(shù),且必須為非零。重要的是,在評估惠更斯 PSF 時,應僅追蹤一個波長。同時請注意,此設置通常會導致光線追蹤速度變慢,因此僅在需要評估惠更斯PSF時才使用。圖10展示了模擬的惠更斯PSF。

圖 9.將 PSF Wave# 設置為非零值,以便在探測器上評估惠更斯 PSF。PSF Wave# 對應于 System Explorer 中定義的波長。

圖 10.左圖顯示了在人眼探測器上計算的惠更斯 PSF。右側顯示了截斷前出瞳處的相位分布。
此時,所有用于計算MTF的數(shù)據(jù)都已準備就緒。以下部分介紹如何通過 PSF 和 pupil 函數(shù)獲取 MTF。
PSF 的討論
用戶可能會好奇為什么 PSF 會有細微的變動,以及瞳孔功能為何會呈現(xiàn)出一個傾斜階段,原因在于第二個光柵的周期不夠精確。如圖11和圖12所示,這一微小誤差可以通過增加第二個光柵周期的有效數(shù)字來消除,確切的數(shù)值應為0.27779397次/微米。

圖 11.將第二個光柵的周期更改為更準確的值,以消除瞳孔函數(shù)中的傾斜相位和所得 PSF 中的偏移。

圖 12.將第二個光柵的周期更改為更準確的值后的仿真結果。
方法 2:通過傅里葉變換將惠更斯 PSF 轉換為 MTF
根據(jù)給定的 PSF 計算 MTF 很容易。在這里,我們通過 MATLAB 進行了一個演示。
1. 為 MATLAB 生成用于交互式擴展的樣板代碼。

圖 13.MATLAB 的交互式擴展樣板代碼。
2. 返回 OpticStudio 以啟用交互式擴展的訪問,如圖 13 所示。

圖 14.交互式擴展的開放訪問權限。
3. 請打開隨附的MATLAB代碼并運行它。請注意,此代碼專為本文中的示例而設計。若應用于其他系統(tǒng),用戶需在代碼的第25行指定用于觀察PSF的探測器編號,在第60行設置瞳孔的半直徑,并在第61行輸入近軸透鏡的焦距。
4. 結果如圖 14 所示。

圖 15.在 MATLAB 中計算的 MTF。
結論
本文展示了針對增強現(xiàn)實(AR)系統(tǒng)設計的出瞳擴展器。文中附帶了多個示例文件,并對每個文件中的關鍵設計要點進行了討論。文章闡述了系統(tǒng)中采用的三個光柵的作用,并講解了如何檢查光束在波導中的傳播足跡,以及如何進行此類系統(tǒng)的圖像仿真。此外,還探討了一些優(yōu)化系統(tǒng)的潛在方法。最后部分,文章討論了計算點擴散函數(shù)(PSF)和調制傳遞函數(shù)(MTF)的多種途徑。