
發布
注冊
/
登錄偏振光線追跡的案例
Ansys Zemax | 在 MATLAB 或 Python 中使用 ZOS-API 進行光線追跡的批次處理
附件下載
聯系工作人員獲取附件
這篇文章會說明如何在 MATLAB 或 Python 中以 Zemax OpticStudio 應用程式界面 (ZOS-API)處理光線數據庫(Ray Database, ZRD)檔案,過程中我們將使用ZRDLoader.dll。本文提供了在 Matlab 中批次處理序列光線追跡(一般、歸一化、偏振或非偏振),以及在 Matlab 和 Python 中使用方法 ReadNextSegmentFull() 批次處理非序列 ZRD 檔案的范例。
什么是 RayTrace.dll?
RayTrace.dll 結合了 ZRDLoader.dll 和 ReadNextSegmentFull,并在序列模式中與4個 IBatchRayTrace 界面共同運作。此外,RayTrace.dll 這個動態連結函式庫涵蓋了以下的界面,并且繼承了 ZOSAPI.Tools.RayTrace 的命名空間:
IRayTraceDirectPolData (sequential):
在這個界面中,我們可以直接在 XYZ 坐標中完成批次的偏振光線追跡,而這也和 DDE 光線追跡指令(模式3)十分相似。此外,該界面屬于 IBatchRayTrace 界面的一種。
IRayTraceDirectUnpolData (sequential):
在這個界面中,我們可以在 XYZ 坐標中完成批次的非偏振光線追跡,而這與 DDE 光線追跡指令(模式1)相似。此外,該界面也同樣屬于 IBatchRayTrace 界面的一種。
展開 Ansys Zemax | 在 MATLAB 或 Python 中使用 ZOS-API 進行光線追跡的批次處理
附件下載
聯系工作人員獲取附件
簡介
這篇文章會說明如何在 MATLAB 或 Python 中以 Zemax OpticStudio 應用程式界面 (ZOS-API)處理光線數據庫(Ray Database, ZRD)檔案,過程中我們將使用ZRDLoader.dll。本文提供了在 Matlab 中批次處理序列光線追跡(一般、歸一化、偏振或非偏振),以及在 Matlab 和 Python 中使用方法 ReadNextSegmentFull() 批次處理非序列 ZRD 檔案的范例。
什么是 RayTrace.dll?
RayTrace.dll 結合了 ZRDLoader.dll 和 ReadNextSegmentFull,并在序列模式中與4個 IBatchRayTrace 界面共同運作。此外,RayTrace.dll 這個動態連結函式庫涵蓋了以下的界面,并且繼承了 ZOSAPI.Tools.RayTrace 的命名空間:
IRayTraceDirectPolData (sequential):
在這個界面中,我們可以直接在 XYZ 坐標中完成批次的偏振光線追跡,而這也和 DDE 光線追跡指令(模式3)十分相似。此外,該界面屬于 IBatchRayTrace 界面的一種。
IRayTraceDirectUnpolData (sequential):
在這個界面中,我們可以在 XYZ 坐標中完成批次的非偏振光線追跡,而這與 DDE 光線追跡指令(模式1)相似。此外,該界面也同樣屬于 IBatchRayTrace 界面的一種。
展開 在 MATLAB 或 Python 中使用 ZOS-API 進行光線追跡的批次處理
這篇文章會說明如何在 MATLAB 或 Python 中以 Zemax OpticStudio 應用程式介面 (ZOS-API)處理光線數據庫(Ray Database, ZRD)檔案,過程中我們將使用ZRDLoader.dll。本文提供了在 Matlab 中批次處理序列光線
追跡(一般、歸一化、偏振或非偏振),以及在 Matlab 和 Python 中使用方法 ReadNextSegmentFull() 批次處理非序列 ZRD 檔案的范例。
(聯系我們獲取文章附件)
什么是 RayTrace.dll?
RayTrace.dll 結合了 ZRDLoader.dll 和 ReadNextSegmentFull,并在序列模式中與4個 IBatchRayTrace 介面共同運作。此外,RayTrace.dll 這個動態連結函式庫涵蓋了以下的介面,并且繼承了 ZOSAPI.Tools.RayTrace 的命名空間:
IRayTraceDirectPolData
(sequential):
在這個介面中,我們可以直接在 XYZ 座標中完成批次的偏振光線追跡,而這也和 DDE 光線追跡指令(模式3)十分相似。此外,該介面屬于 IBatchRayTrace 介面的一種。
IRayTraceDirectUnpolData
(sequential):
在這個介面中,我們可以在 XYZ 坐標中完成批次的非偏振光線追跡,而這與 DDE 光線追跡指令(模式1)相似。此外,該介面也同樣屬于 IBatchRayTrace 介面的一種。
展開 ZEMAX | 在MATLAB或Python中使用ZOS-API進行光線追跡的批次處理
主題:Zemax 成像設計線上培訓
時間:2022年4月14日-15日
點擊圖片查看培訓詳情
這篇文章會說明如何在MATLAB或Python中以Zemax OpticStudio應用程序界面(ZOS-API)處理光線數據庫(Ray Database,ZRD)檔案,過程中我們將使用ZRDLoader.dll。本文提供了在Matlab中批次處理序列光線追跡(一般、歸一化、偏振或非偏振),以及在Matlab和Python中使用方法ReadNextSegmentFull()批次處理非序列ZRD檔案的示例。
作者 Michael Humphreys
附件下載
(聯系工作人員獲取附件)
什么是RayTrace.dll?
RayTrace.dll結合了ZRDLoader.dll和ReadNextSegmentFull,并在序列模式中與4個IBatchRayTrace界面共同運作。此外,RayTrace.dll這個動態連接函式庫涵蓋了以下的界面,并且繼承了ZOSAPI.Tools.RayTrace的命名空間:
IRayTraceDirectPolData (sequential):在這個界面中,我們可以直接在XYZ坐標中完成批次的偏振光線追跡,而這也和DDE光線追跡指令(模式3)十分相似。此外,該界面屬于IBatchRayTrace界面的一種。
IRayTraceDirectUnpolData(sequential):在這個界面中,我們可以在XYZ坐標中完成批次的非偏振光線追跡,而這與DDE光線追跡指令(模式1)相似。
展開 
Ansys Zemax | 如何在序列模式下模擬分光棱鏡
打開偏振光線追跡 (該工具位于分析選項卡 – 偏振 (Polarization)– 偏振光線追跡) 工具,進行如下參數設置:
總透射能量會顯示在分析窗口的底部:
偏振光線追跡考慮了所有效應的能量損失,其中包括:在追跡光線的波段以及光線在表面上的任意入射角下,AR鍍膜的N-BK7玻璃表面,50/50的理想分光膜層,N-BK7材料的體吸收效應。
多重結構模擬反射光路
下面我們將使用多重結構模擬反射光路。打開多重結構編輯器(位于編輯器 (Editors) 組中的多重結構編輯器 (Multi-Configuration Editor))并使用插入結構 (Insert Configuration) 按鈕插入一個新的結構(或在鍵盤上點擊Ctrl+Shift+Ins)。
在多重結構編輯器中插入多重結構操作數PRAM,提取坐標間斷面(表面5)的X旋轉 (X Tilt) 參數(參數3)。
在第二個結構中設置拾取求解 (Pick-Up Solve),并設置縮放因子 (Factor) 為-1。
我們需要將表面4的材料類型從N-BK7更改為Mirror。因此,在多重結構編輯器中插入多重結構操作數GLSS,提取表面4的材料類型并定義結構2的材料類型為Mirror。
在鍵盤上點擊Crtl+A切換鏡頭數據編輯器為結構2?,F在,鏡頭編輯器的標題欄中應顯示“結構2/2 (Config 2/2)”。
展開 Ansys Zemax | 如何在序列模式下模擬分光棱鏡
在表面2和6的表面屬性中的孔徑選項卡中設置如下孔徑:
在表面4的表面屬性中的孔徑選項卡中進行如下設置:
更新3D視圖,您可以看到如下系統結構:
如果想要在布局圖中移除漸暈的邊緣光線,您需要勾選3D視圖的設置參數中的“刪除漸暈 (Delete Vignetted)”選項:
更新3D視圖可以看到如下結果:
設置分光膜層
在表面4上設置理想的50/50分光膜層“I.50”,在表面2和6上設置抗反射膜層“AR”。其中,I.50膜層是理想的50%透射的膜層,AR膜層是四分之波長厚度的MgF2抗反射膜層。
分析透射光強
現在我們已經模擬了分光棱鏡的水平透射光路(折射光路)。您也可以通過鍍膜文件定義任意透射比例的理想膜層,或通過定義膜層厚度和材料種類的方法或定義透射率根據波長和入射角的函數的方法創建非理想的膜層。
只有在分析或計算中考慮偏振影響時,薄膜膜層的影響才會被考慮,在使用理想膜層時也是如此。像面上的總透射能量可以使用OpticStudio中的偏振分析功能進行計算。我們將使用偏振光線追跡 (Polarization Ray Trace) 工具計算主光線在像面上的總透射能量。
打開偏振光線追跡 (該工具位于分析選項卡 – 偏振 (Polarization)– 偏振光線追跡) 工具,進行如下參數設置:
總透射能量會顯示在分析窗口的底部:
偏振光線追跡考慮了所有效應的能量損失,其中包括:在追跡光線的波段以及光線在表面上的任意入射角下,AR鍍膜的N-BK7玻璃表面,50/50的理想分光膜層,N-BK7材料的體吸收效應。
展開 非序列配置:如何使用光線追跡和場追跡的仿真設置
摘要
VirtualLab不僅能夠進行光線追跡,也可以執行場追跡。各種數值參數的規定可以對數值模擬進行控制。在VirtualLab中,這通常由精度因子的規范來處理。本示例闡述了如何使用提供的精度因子來控制VirtualLab中的光線追跡和場追蹤引擎,并重點放在非序列仿真的設置上。
仿真設置概覽
以下將更詳細地解釋模擬設置:
總精度(第二代場追跡)
1 采樣精度
2 傅里葉變換精度
非序列光線/場追跡
3 能量閾值
4 最大級
5 通道分辨率精度
6 僅顯示在3D視圖中入射探測器的路徑
1. 采樣精度
? 采樣精度是一個用于在追跡期間控制光場信息準確性的參數。
? 可以通過增加采樣精度因子來克服出現的意外人為現象。
2. 傅里葉變換精度
? 在VirtualLab中有幾個傅立葉變換算法。
? 根據場是位于其衍射區域還是幾何區域自動選擇。
? 小的傅里葉變換精確度(例如0.01)迫使全局使用幾何傅里葉變換,其特點在于比衍射變換快得多。
? 另外,每個探測器都可以單獨強制使用幾何傅里葉變換。
? 可以通過在相應檢測器的編輯對話框中激活“檢測器參數”選項卡下的“假設幾何場區域用于檢測器評估”復選框來選擇此項。
3. 能量閾值(非序列光線\光場追跡)
? 能量閾值是非序列追跡引擎的停止標準。
? 對于光能低于能量閾值的每一個 非序列光路,沿著路徑的光追跡將不做處理。
能量閾值:方案說明
? 遇到玻璃板時透射和反射光能的示例性說明。
? 在剩余能量達到可以忽略的水平之前,通常不需要很多反射。
? 在全反射的情況下,當然應該考慮許多相互作用。
? 下面顯示了能量閾值影響的一個例子。
展開 VirtualLab Fusion:為光線追跡生成光線
在鏡頭系統的光線追跡中,光線起源于物點,并且通常針對光闌進行特定選擇,例如,主光線穿過光闌的中心。如果我們從物理光學的角度來看這條光線的選擇,我們會發現光線與球面波的波前正交,球面波的波前起始于物點。在VirtualLabFusion中,這種情況可以通過在光源平面中移動選擇球面場源模式來獲得。
在光線追跡中,如何以合理和統一的方式處理球形光源和高斯光源這兩種示例場景呢?如何產生光線?
我們的答案是一種基于物理光學并且光線光學也包含在其中的方式。用戶可以選擇“Include Diffraction-Induced Contribution to Ray Direction”選項。然后,在高斯光束或任何其他光源模式的情況下,計算應該追跡通過的系統的第一個表面上模式的發散度,包括其衍射效應。這給我們提供了生成光線所需的信息,光線的方向包括發散度。
總之,我們執行從光源平面到系統的第一表面的物理光學傳播,并在那里生成光線。通過適當選擇傅里葉變換,可以包含或不包含衍射。這表明,即使對于基本光線跟蹤,初始物理光學建模的步驟通常也是有必要的。VirtualLab Fusion通過選擇“Include Diffraction-Induced Contribution to Ray Direction”來實現這一需要。
最初的物理光學步驟為我們提供了另一個選擇。在光線產生的平面上,我們還知道場振幅以及每條光線線的相關能量。選擇“Unselect Rays with an Associated Energy Smaller Than x%”選項,能量小于光源平面中最大光線能量x%的光線在計算中將被丟棄。
展開 VirtualLab Fusion:為光線追跡生成光線
在鏡頭系統的光線追跡中,光線起源于物點,并且通常針對光闌進行特定選擇,例如,主光線穿過光闌的中心。如果我們從物理光學的角度來看這條光線的選擇,我們會發現光線與球面波的波前正交,球面波的波前起始于物點。在VirtualLabFusion中,這種情況可以通過在光源平面中移動選擇球面場源模式來獲得。
在光線追跡中,如何以合理和統一的方式處理球形光源和高斯光源這兩種示例場景呢?如何產生光線?
我們的答案是一種基于物理光學并且光線光學也包含在其中的方式。用戶可以選擇“Include Diffraction-Induced Contribution to Ray Direction”選項。然后,在高斯光束或任何其他光源模式的情況下,計算應該追跡通過的系統的第一個表面上模式的發散度,包括其衍射效應。這給我們提供了生成光線所需的信息,光線的方向包括發散度。
總之,我們執行從光源平面到系統的第一表面的物理光學傳播,并在那里生成光線。通過適當選擇傅里葉變換,可以包含或不包含衍射。這表明,即使對于基本光線跟蹤,初始物理光學建模的步驟通常也是有必要的。VirtualLab Fusion通過選擇“Include Diffraction-Induced Contribution to Ray Direction”來實現這一需要。
最初的物理光學步驟為我們提供了另一個選擇。在光線產生的平面上,我們還知道場振幅以及每條光線線的相關能量。選擇“Unselect Rays with an Associated Energy Smaller Than x%”選項,能量小于光源平面中最大光線能量x%的光線在計算中將被丟棄。
展開 FRED:光線追跡的控制
下圖說明了散射光線的父源,因為入射光線在兩個粗糙的鏡面之間反射。藍光為0代,兩面鏡面反射;紅光為1代,M1處散射,M2處鏡面反射;綠光為2代,M1處散射,M2處散射。
光線代系的限制由“光線控制”對話框上的“代系截止等級 Ancestry level cutoff”選項控制。 對于所有“光線追跡”屬性,默認的鏡面反射的代系(截止等級)為2,默認的散射代系(截止等級)為1。此設置允許鏡面射線分裂兩次,并產生一代散射。 在一個實際案例的鏡面代系截止設置中,請考慮以下事實:當由外部光源(例如太陽)照射時,任何透鏡系統都可能在各個表面之間引起反射。 此過程通常稱為鬼像。 為了使這些反射到達像平面,必須在分配給鏡頭表面的光線跟蹤控件上允許偶數次反射(2、4、6,..)。 兩次反射稱為一階鬼像,四個反射稱為二階鬼像,依此類推。 另一個關于光線代系的案例來自于對法布里-珀羅效應的建模。盡管法布里-珀羅的透射率和反射率的表達是通過項的無限求和而得出的,但對光線分裂的限制必然導致累加的終止。 在對應于圖a-c的情況下,代系等級直接確定保留多少累加的項。 另一方面,對應于圖d中的情況,僅要求鏡面反射代系截止值保持其默認值2。當超過“相交計數截止值”或當光線通量低于“光線功率截止閾值”時,則累加將被終止。
展開 經過玻璃平板的非序列光線追跡
虛擬和混合現實>近眼顯示
任務/系統描述
亮點
非序列光場追跡,具有可控制的輸入/輸出正向及反向通道邏輯
說明:光源
說明:準直透鏡
說明:玻璃平板
說明:通道邏輯
說明:探測器
結果:3D光線追跡&點列圖
結果:3D光線追跡&點列圖
結果:3D光線追跡&點列圖
文件&技術信息

什么是光線追跡?
光線追跡(Ray Tracing)是一種計算方法,用于表示光線與物體相互作用時的行為方式。在光的波長遠小于與之相互作用的物體時,光線追跡可用于仿真光的行為。
光線追跡不僅可追蹤這些光線穿過不同光學及光子系統的路徑,而且還可仿真光線在與不同結構進行物理交互時的折射、反射或散射方式。光線可以通過許多類型的光學系統并與之相互作用,其中許多常見物體,如反射鏡、透鏡或棱鏡,所有這些相互作用都可以仿真。
然而,需要做出重要的區分。光線追跡涉及兩個方面的光的行為。其中,最常見的光線追跡應用領域,是電子游戲。光線追跡有助于游戲開發人員通過測定物體反射光線的方式,在游戲中提供逼真的視覺效果,從而實現著色器和全局照明(為3D場景添加逼真照明的算法)的實時開發。此外,其還可幫助開發人員提供表面紋理的渲染圖像。
視頻游戲是實時光線追跡技術,速度是關鍵,游戲引擎提供高級視覺效果以及高畫質圖像,盡管增加的算力會降低游戲的幀速率。游戲中的光線追跡以計算機圖形和渲染技術(光柵化等)為核心。
另一方面,在光學和光子學領域,光線追跡是光源與物理物體相互作用的方式,因此其考慮系統的材料屬性以及發生的物理相互作用。在光學和光子學領域,光線追跡的核心是準確定和光的行為核心,而不是作為視覺寫實的工具。本文重點介紹的是光線追跡在光學和光子組件設計中的應用。
光線追跡的工作原理?
光線追跡是一種計算方法,用于在光線穿過光學系統時對其進行建模??蓪⑵溆糜谠O計透鏡、傳感器和其它光學組件,以便基于不同入射角的光與結構相互作用的方式來預測組件性能。光線在空氣中傳播并遇到另一種具有不同折射率(決定光在密度不同的兩種介質界面上彎曲程度的屬性)的材料時,會通過新介質折射,而有一部分則會反射。
展開 SPRAY 光譜光線追跡仿真軟件
SPRAY是一款適用于Windows 7/8/10 操作系統的軟件,用于進行頻率(或波長)分辨的光線追跡模擬仿真。您可以定義:
? 發射光線的光源
? 如鏡子、光散射器、吸收器或改變光線方向或吸收光線的表面等物體
? 屏幕、探測器和探測器陣列來收集關于設置中輻射分布的信息
SPRAY 組件
以下組件在當前版本中可用:
光源
? 點光源(各向同性發射)
? 體積光源(各向同性發射)
? 矩形光源(用戶自定義發射錐)
? 圓形光源(用戶自定義發射錐)
? 組合光源(多個元素發光)
探測器
? 矩形探測器
? 屏幕
? 線性檢測器陣列
? 球形探測器陣列
界面
界面將空間中的區域分開,例如定義從一種材料到另一種材料和/或從非散射區域到光散射體的過渡。界面被定義為層疊或邊界,具有用戶定義的反射率和透過率屬性(規則或漫反射)。
幾何物體
幾何物體可以被用戶定義的界面或理想的鏡子或吸收器覆蓋。以下這些形狀目前可用:
? 矩形
? 三角形
? 球體
? 部分球體
? 圓柱體
? 開柱面
? 錐
? 部分橢球
? 部分拋物面
? 球面聚光透鏡
? 球面色散透鏡
? 棱鏡
? 用戶自定義表面輪廓
? 多個子形狀的組合
SPRAY使用與SCOUT光譜仿真軟件相同的光學常數模型和數據,包括大型數據庫。在接口中使用的層疊定義也是完全相同的。在幾何物體之間,光線可以在吸收、散射或熒光介質中移動。
利用集成的Mie-程序計算多涂層球體的光散射和吸收特性。
聯系我們
展開 Ansys Zemax | 繪圖分辨率結果對光線追跡的影響
您會注意到,在這種情況下,光線追跡控制中沒有報錯:
然而,如果您比較這四個系統的光線追跡結果,您將會注意到,環形面分辨率越高,探測器上的總命中率就越高,但是根據上面的光線追跡結果來看,沒有光線被損耗。這里我們可以看出,只有具有自定義繪圖分辨率的探測器才會收集來自相應光源的所有光線:
比較四個系統的結果,可以清楚地看出環形面的繪制分辨率對光線追跡的影響:如果繪制分辨率不足以提供足夠的初步預測,光線追跡的結果是不準確的,且與預期不一致。
注意:上述行為很大程度上取決于您的具體系統,沒有關于何時需要提高繪圖分辨率的總體建議。此外OpticStudio沒有檢測這種潛在問題的方法,因此在這種情況下不會產生光線追跡錯誤。光線追跡結果需要由用戶來檢查(例如,通過系統3D視圖),以確保系統準確性。
展開 利用光線追跡分析高數值孔徑透鏡系統
10.總結
■VirtualLab Fusion 可利用新的光線追跡引擎對復雜光學系統進行分析。
■利用三維光線追跡我們可以對系統進行分析,并對位置等信息進行概覽。
■此外,系統可以直接利用光線追跡引擎進行分析。
■可用于評價點列圖,也可以附加其他探測器(如光斑尺寸探測器)。