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

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

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

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

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

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

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

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

圖 7.在眼框處層壓的四個(gè)對(duì)象。

圖 8.截?cái)嗟耐坠δ?。左?cè)顯示相干輻照度。右側(cè)顯示 Coherent Phase。
此外,在計(jì)算惠更斯點(diǎn)擴(kuò)散函數(shù)(PSF)時(shí),需將 PSF Wave# 設(shè)置為眼圖系統(tǒng)檢測(cè)器的一個(gè)非零值。這個(gè)數(shù)值代表 System Explorer 中設(shè)計(jì)人員想要評(píng)估的光波長(zhǎng)的波數(shù),且必須為非零。重要的是,在評(píng)估惠更斯 PSF 時(shí),應(yīng)僅追蹤一個(gè)波長(zhǎng)。同時(shí)請(qǐng)注意,此設(shè)置通常會(huì)導(dǎo)致光線追蹤速度變慢,因此僅在需要評(píng)估惠更斯PSF時(shí)才使用。圖10展示了模擬的惠更斯PSF。

圖 9.將 PSF Wave# 設(shè)置為非零值,以便在探測(cè)器上評(píng)估惠更斯 PSF。PSF Wave# 對(duì)應(yīng)于 System Explorer 中定義的波長(zhǎng)。

圖 10.左圖顯示了在人眼探測(cè)器上計(jì)算的惠更斯 PSF。右側(cè)顯示了截?cái)嗲俺鐾幍南辔环植肌?/p>
此時(shí),所有用于計(jì)算MTF的數(shù)據(jù)都已準(zhǔn)備就緒。以下部分介紹如何通過 PSF 和 pupil 函數(shù)獲取 MTF。
PSF 的討論
用戶可能會(huì)好奇為什么 PSF 會(huì)有細(xì)微的變動(dòng),以及瞳孔功能為何會(huì)呈現(xiàn)出一個(gè)傾斜階段,原因在于第二個(gè)光柵的周期不夠精確。如圖11和圖12所示,這一微小誤差可以通過增加第二個(gè)光柵周期的有效數(shù)字來消除,確切的數(shù)值應(yīng)為0.27779397次/微米。

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

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

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

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

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