Ansys Zemax | 使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 2 部分

附件下载

联系工作人员获取附件

在 OpticStudio 中使用 RCWA 工具为增强现实(AR)系统设置出瞳扩展器(EPE)的示例中,首先解释了 k空间中光栅的规划,并详细讨论了设置每个光栅的步骤。

介绍

本文提供了多个实用的提示和技巧,旨在确保机械 CAD 程序与 OpticStudio 之间能够顺畅地进行数据交换。作为4篇系列文章的第2部分,本文详细介绍了一个包含波导和3个光栅的出瞳扩展器系统的设计。想要了解更多信息的可以查看本系列文章中的第一部分:Ansys Zemax | 使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 1 部分

波导和第一(耦合内)光栅

如图 1 所示,第一步设置波导和第一个光栅。用户可以在这个阶段打开附件的 step1_waveguide_and_first_grating.zar 来检查系统。

图片

图 1 波导和第一个光栅

检查此文件时需要了解的要点:

1. 波导由矩形体积 (Object 1) 构建。

2. 波导的光栅由衍射光栅对象(对象 2)构建。如图 2 所示,在 Object Property 设置中,衍射光栅使用衍射 DLL“srg_trapezoid_RCWA.dll”进行设置。这将充当二进制光栅,其形状如图 3 所示。DLL 使用表面浮雕光栅的 RCWA 方法计算衍射效率。想要了解关于 DLL 详细信息的,可以参考此篇文章:利用RCWA方法模拟表面浮雕光栅的衍射效率。

图片

图 2 RCWA DLL 用于模拟该系统中的光栅。

图片

图 3 用于 RCWA 的光栅形状。

3. 衍射光栅是由与矩形体相同的材料所制造的。而且,衍射光栅完全嵌入在波导的内部,具体如图4所示。衍射光栅的面 1 与矩形体积的面 1 重叠。请注意,假定光栅结构位于衍射光栅的面 1 上,而不是对象的整个体积上。在光线追踪模型中,认为衍射表面几乎没有厚度。真正的微观结构仅在 RCWA 磁芯中考虑,RCWA 磁芯计算衍射光线的效率和偏振。

01983_v1_4_grating_is_at_face_1.png

图 4 对象衍射光栅在矩形体积内部定义,其面 1 与矩形体的面 1 重叠。

4.在Non-Sequential Component Editor(非顺序组件编辑器)中,定义衍射光栅(Diffraction Grating)对象时,需要确保其位于矩形体(Rectangular Volume)之后。这样设置可以确保衍射光栅的属性具有更高的优先级,这是遵循嵌套规则的结果。可以联系工作人员了解更多相关详细信息。

5. RCWA DLL 的参数 “Only these orders” 设置为 8,这意味着将仅跟踪订单 T-1(传输中的订单 -1)。这是提高系统仿真速度的技巧。当光线撞击光栅时,它应该分成几个衍射级。但是,在此系统中,只需要 T-1 订单。想要了解有关参数更多详细信息的,可以参考此篇文章:利用RCWA方法模拟表面浮雕光栅的衍射效率。

6. 矩形体积的 Face 0(Side Face)设置为 Absorbing,这使得光线在波导的边缘被吸收,如图 5 所示,这也使仿真更加高效。

7. 源椭圆发射准直光束,该光束通常入射到第一个光栅上。这是表示来自光引擎中图像源中心场的光的测试光束。应该有一个光引擎,在进入第一个光栅之前将图像源(例如 DMD、LCoS、LCD 等)转换为无焦光源。

图片

图 5 矩形体积的 Face 0 (Side Face) 设置为 Absorbing。

第二(车削)格栅

在第二步中,我们需要添加一个车削格栅。该光栅沿一个方向扩展入射光束,并将其传播方向旋转 90 度。完成此步骤后,系统文件将被保存为“step2_turning grating.zar”。

图片

图 6 添加到系统中的旋转光栅。

检查此文件时需要了解的要点:

1. 光栅是使用具有两个父对象的布尔原生 (Object 6) 构建的。衍射光栅对象(对象 5)提供衍射效果,而凸出对象(对象 4)提供所需的形状。这就是用户如何制作具有任何所需形状的光栅的方法。

2. 凸出的物体读取位于“\Documents\Zemax\Objects\Apertures”中的 UDA 文件,并凸出 2D 光圈以形成 3D 体积。UDA 文件的定义如图 7 所示。

注意: 现在我们已经提供了一个便捷的用户定义对象,用于设置多边形光栅。关于该对象的详细使用方法,您可以参考本系列文章即将发布的第4部分。请大家持续关注,以便及时了解更多信息。

01983_v1_7_defining_UDA.png

图 7 系统中定义的 UDA。

3. 对象 5 中衍射 DLL 的参数“旋转光栅”设置为 45 度。这意味着光栅线条是从左上角斜向对齐至右下角,同时光栅的周期性变化是从左下角延伸至右上角。

4. 如图8所示,光线在车削光栅中会发生两种衍射。需要注意的是,在对象5的DLL设置中,起始阶数(Start Order)和终止阶数(Stop Order)参数分别被设定为-1和+1,这意味着衍射阶数为-2和+2或更高的光线将被忽略,不会参与衍射过程。

5. 在“System Explorer > Non-Sequential”中,将 Maximum Intersections Per Ray、Maximum Segments Per Ray 这 3 个参数修改为较大的数字,Minimum Relative Ray Intensity 修改为较小的数字,以便光线追踪不会在旋转光栅中停止。如果不进行这些修改,当光线在追踪过程中分裂时,可能会因能量降至最低限制以下而错误地终止追踪。

01983_v1_8_ray_paths_in_2nd_grating.png

图 8 光线在第二个(旋转)光栅内部进行衍射有两种主要方式。

第三(外耦合)光栅和探测器

最后一步是添加第三个光栅以及一个检测器,用以捕捉外耦合光线。当光线触及第三个光栅时,它们会发生分裂:一部分能量会跃迁至衍射级+1并逸出波导,而另一部分能量则维持原方向前行,即保持在零阶状态。此步骤的系统文件保存为 “step3_out-coupling grating.zar”。

图片

图 9 带有 3 个光栅的出瞳扩展器。

检查此文件时需要了解的要点:

1.为了满足矩形光栅的需求,我们采用了带有“DiffractionGrating.DLL”的用户自定义对象(对象7)来替代标准的衍射光栅对象。此外,为了适应更复杂且多变的形状需求,我们也支持用户自行编写专属的用户定义对象。 

2. 探测器(对象8)的主要作用是检查能量在出瞳(即眼框位置)的分布情况。设计此类系统的关键目标之一就是确保能量能够均匀分布在瞳孔空间内。请注意,探测器距离波导 15 mm。该距离可以被视为系统的眼距。

3. 这个源椭圆代表来自该系统中心场的光。要模拟来自其他场的光线,需要修改 Source Ellipse (源椭圆),如下所示。例如,您可以更改其参数为以下数值,结果将如图10所示。

• Z 位置 = 0
• 源>对象属性 > Pre-Propagation = -10
• 更改 Tilt About X 和 Tilt About Y 以获得所需的角度。例如,当光线以相对于X轴10度的倾斜角入射时,其能量分布如图11所示。

图片

图 10 从中心磁场开始的扩展瞳孔位置的能量分布。

图片

图 11 沿 X 方向 10 度的场角处扩展光瞳位置的能量分布。

上一篇文章:Ansys Zemax | 使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 1 部分

在第三部分中我们将解释 k空间中光栅的规划和讨论设置每个光栅的细节,请大家持续关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/972838.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习04 数据增强、调整学习率

目录 数据增强 常用的数据增强方法 调整学习率 学习率 调整学习率 ​调整学习率的方法 有序调整 等间隔调整 多间隔调整 指数衰减 余弦退火 ​自适应调整 自定义调整 数据增强 数据增强是通过对训练数据进行各种变换(如旋转、翻转、裁剪等)&am…

微软宣布 Windows 11 将不再免费升级:升级需趁早

大家都知道如果你现在是Windows 10 系统,其实可以免费升级到正版 Windows 11,只要你的电脑配置满足 TPM2.0要求。 而最近微软已经公布了 Windows 10 的最后支持时间,也就是今年10月14日,在这之后微软将不再对Windows 10负责&#…

【Spring详解三】默认标签的解析

三、默认标签的解析 Spring的标签中有 默认标签和 自定义标签,两者的解析有着很大的不同,这次重点说默认标签的解析过程。 DefaultBeanDefinitionDocumentReader.class 默认标签的解析是在 DefaultBeanDefinitionDocumentReader.parseDefaultElement()函…

位运算,双指针,二分,排序算法

文章目录 位运算二进制中1的个数题解代码我们需要0题解代码 排序模版排序1题解代码模版排序2题解代码模版排序3题解代码 双指针最长连续不重复子序列题解代码 二分查找题解代码 位运算 1. bitset< 16 >将十进制数转为16位的二进制数 int x 25; cout << bitset<…

ArkTS与ArkUI深度解析:鸿蒙应用开发的未来之路

文章目录 **1. ArkTS与ArkUI概述****1.1 什么是ArkTS&#xff1f;****核心特性** **1.2 什么是ArkUI&#xff1f;****核心特性** **1.3 二者的核心优势** **2. ArkTS语言基础****2.1 语法特性与TypeScript的对比****2.2 变量与类型系统****基本类型****联合类型与类型别名** **…

关于 BK3633 上电时受串口 UART2 影响而无法启动的问题说明

1. 问题描述 BK3633 SDK 版本&#xff1a;BK3633_DesignKit_V06_2310 使用 BK3633 UART2 与指纹模块进行通讯&#xff0c;为了降低功耗&#xff0c;通过 GPIO 控制了指纹模块的供电电源。但每次给整个系统板子上电时&#xff0c;BK3633 很大概率会实际而无法正常运行程序&…

修改项目的一些前端记录(自用)

<div style"background:#f2f2f2;position:absolute;top:75px;width:10%;bottom:0px">\<ol class"tree">\<li>\<label for"folder1" class"folderOne foldertop"><img src"common/img/时间.png" …

tailwindcss学习01

系列教程 01 入门 02 vue中接入 入门 # 注意使用cmd不要powershell npm init -y # 如果没有npx则安装 npm install -g npx npm install -D tailwindcss3.4.17 --registry http://registry.npm.taobao.org npx tailwindcss init修改tailwind.config.js /** type {import(tai…

【Bert】自然语言(Language Model)入门之---Bert

every blog every motto: Although the world is full of suffering&#xff0c; it is full also of the overcoming of it 0. 前言 对bert进行梳理 论文&#xff1a; BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 时间&#xff1a;…

ARM64 Trust Firmware [五]

本章介绍 ATF 中的 Runtime Service 是如何定义和被调用的。 要了解 SMC&#xff0c;必须从 SMC 指令本身开始&#xff0c;其指令如下图&#xff1a; 指令格式为&#xff1a;SMC #<imm>&#xff0c;从官方文档了解到该指令只能在 EL1 以及更高的异常等级上调用&#xff…

轻量级5G核心网:适应未来网络需求的关键方案

5G核心网 随着5G技术的迅速普及&#xff0c;网络架构正面临前所未有的变革。传统的5G核心网部署逐渐暴露出在处理大量设备连接、降低运营成本和提升网络灵活性方面的局限性。在这一背景下&#xff0c;轻量级5G核心网&#xff08;Lightweight 5G Core Network&#xff09;成为了…

uniapp uni.request重复请求处理

类似这种切换tab时&#xff0c;如果操作很快并且网络不太好&#xff0c;就出现数据错乱&#xff0c;在网上查了一圈&#xff0c;有一个使用uview拦截处理的&#xff0c;但是原生uni.requse没有找到详细的解决办法&#xff0c;就查到使用 abort 方法&#xff0c;我自己封装了一个…

一周学会Flask3 Python Web开发-http响应状态码

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Flask程序中&#xff0c;客户端发出的请求触发相应的视图函数&#xff0c;获取返回值会作为响应的主体&#xff0c;最后生成…

FastGPT及大模型API(Docker)私有化部署指南

​​欢迎关注【AI技术开发者】 ​ 经过优化&#xff0c;在不影响FastGPT功能的情况下&#xff0c;大幅降低了部署的设备配置要求&#xff0c;仅需1c1h即可正常部署使用。 官方要求配置&#xff1a; ​ ​ 优化后的实际占用情况&#xff1a; 运行内存仅需370M&#xff08…

个人博客5年回顾

https://huangtao01.github.io/ 五年前&#xff0c;看程序羊的b站视频做的blog&#xff0c;受限于网络&#xff0c;只能单向学习&#xff0c;没有人指导与监督&#xff0c;从来没有想过&#xff0c;有没有什么问题&#xff1f; 一、为什么要做个人博客&#xff1f; 二、我是怎么…

11.编写前端内容|vscode链接Linux|html|css|js(C++)

vscode链接服务器 安装VScode插件 Chinese (Simplified) (简体中⽂) Language Pack for Visual Studio CodeOpen in BrowserRemote SSH 在命令行输入 remote-ssh接着输入 打开配置文件&#xff0c;已经配置好主机 点击远程资源管理器可以找到 右键链接 输入密码 …

DeepSeek R1生成图片总结2(虽然本身是不能直接生成图片,但是可以想办法利用别的工具一起实现)

DeepSeek官网 目前阶段&#xff0c;DeepSeek R1是不能直接生成图片的&#xff0c;但可以通过优化文本后转换为SVG或HTML代码&#xff0c;再保存为图片。另外&#xff0c;Janus-Pro是DeepSeek的多模态模型&#xff0c;支持文生图&#xff0c;但需要本地部署或者使用第三方工具。…

【达梦数据库】dblink连接[SqlServer/Mysql]报错处理

目录 背景问题1&#xff1a;无法测试以ODBC数据源方式访问的外部链接!问题分析&原因解决方法 问题2&#xff1a;DBLINK连接丢失问题分析&原因解决方法 问题3&#xff1a;DBIINK远程服务器获取对象[xxx]失败,错误洋情[[FreeTDS][SQL Server]Could not find stored proce…

【从0做项目】Java搜索引擎(4)——性能优化~烧脑~~~

本篇文章将对项目搜索引擎&#xff08;1&#xff09;~&#xff08;3&#xff09;进行性能优化&#xff0c;包括测试&#xff0c;优化思路&#xff0c;优化前后对比 目录 一&#xff1a;文件读取 二&#xff1a;实现多线程制作索引 1&#xff1a;代码分析 2&#xff1a;代码…

YOLOv12推理详解及部署实现

目录 前言一、YOLOv12推理(Python)1. YOLOv12预测2. YOLOv12预处理3. YOLOv12后处理4. YOLOv12推理 二、YOLOv12推理(C)1. ONNX导出2. YOLOv12预处理3. YOLOv12后处理4. YOLOv12推理 三、YOLOv12部署1. 源码下载2. 环境配置2.1 配置CMakeLists.txt2.2 配置Makefile 3. ONNX导出…