增强现实(AR)系统为多道光路的架构和自由曲面(free-from optics)的使用提供了良好的示范。这篇文章说明了如何在序列模式中,使用楔形棱镜(wedge-shaped prism)和自由曲面建立头戴式显示器(HMD)。我们将以三个范例档案演示不同阶段的模型建立。(联系我们获取文章附件) O'-lBf+<
xt"/e-h}
简介 m|"MJ P
]3QQ"HLcp
在设计一个增强现实(augmented reality, AR)透视头戴式显示器(OST-HMD)时,我们会针对两道光路进行优化:微显示器的投影路径以及供用户看见外界的透视路径。为了达到最佳的AR效果,光学设计者必须确保虚拟图像和现实景物能正确结合。此技术可被广泛应用在军事和医疗辅助等方面。 1^Zx-p3J
考虑到实际用途,设计者必须将整个光学系统设计成一个精巧且非侵入式的装置,同时具备大视角(FOV)和小f-number等优点。这篇文章说明如何使用楔形自由曲面棱镜和胶合辅助镜头(cemented auxiliary lens)建立上述的光学系统。 +V8yv-/{
&:jE+l
参考专利 qW<: `y
IW1]H~1w
本文的范例参考了专利Patent US 2014/0009845 A1的设计。 Vq'&t<K#
(lPNMS|V
在范例档案中,我们针对各表面大量的运用了倾斜(tilt)和偏心(decenter)技巧。在下方的示意图中,我们可以看到系统使用自由曲面棱镜(FFS prism)和胶合辅助镜头(cemented auxiliary lens, 图中黄色部分)这两个光学组件改变入射光的行进方向。FFS的使用增加了设计的自由度,使系统可使用较少的光学组件达成目的,大幅减少装置的重量。另一方面,胶合辅助镜头(cemented auxiliary lens)可有效修正畸变,改善透视影像的质量。 1=(i{D~
XLbrE|0A?
下图参考自专利并稍加修改。 65J'uN
L6A6|+H%E
设计方针 [bT@Y:X@`
OST-HMD包含了两个光学组件:1)楔形FFS棱镜 和 2) 胶合辅助镜头。在OpticStudio中我们会先建立FFS棱镜,并根据原始规格进行参数设定,接着以微显示器投影路径(第一道光路)为目标进行优化。在完成上述步骤后,我们在多重结构编辑器(multi-configuration editor)中建立胶合辅助镜头。借由这个镜头的辅助,可以有效减少畸变的影响,并消除光学系统的场曲情况。透过以上的步骤,我们可以改善第二道光路使观察者看到的外界景物不会扭曲变形。 `g :<$3}
在仿真环境中,我们翻转了整个光学系统,使光线路径与现实情况完全相反。在实际应用上,我们会以微显示器作为HMD的光源,人眼的视网膜则会是像面。前后者分别作为整个光学路径的出/入瞳。然而为了精确的架设各个组件且能有效的在OpticStudio中进行优化,我们会将实际的出瞳作为OpticStudio中的入瞳,并以微显示器作为整个系统的像面。在接下来的篇幅,我们都会以光线在OpticStudio中的追迹方向来描述。 U0N[~yW(t1
关于HMD的建立,首先我们会逐一插入表面以建立棱镜,并追迹单一视场角(field angle)的一条主光线。接下来,为了倾斜棱镜使光线按预期的路线行进,我们会在适当的位置插入Coordinate Break表面。此外,我们还需要考虑组件的几何关系,并为各表面设定适合的材质,使这个光学系统成为一个合理的设计。 rjR
uV
6f~cQ
Z21XlbK
由于序列模式(Sequential Mode)无法仿真出全反射(TIR)的现象,我们必须在发生TIR的表面上再覆盖上一个表面,并定义该表面为具有Pickup solves的反射镜表面(MIRROR),使追迹光线能符合实际情况。在完成对单一视场的优化之后,我们接着利用多重结构编辑器(Multi-Configuration Editor, MCE)建立第二道光路。最后我们会纳入制造上的考虑,并对整个系统的表现进行最终的优化。 [bOy,^@4
{U(h]'
楔形自由曲面(FFS)棱镜 Q#g
s)2
W'0wT ZG
为了简化一开始的光线追迹过程,我们将系统的入瞳大小设置为6mm(人眼瞳孔尺寸约为2-8mm),并设定单一视场点(field point)。当所有的表面都正确的被建立,且光线能顺利的通过棱镜后,我们可以逐步的扩大FOV和入瞳尺寸。(更多关于FOV的论述可参考后续的”定义视角”段落) (I~,&aBr
)sS<%Xf
在序列模式中,我们利用多个倾斜或偏心表面建立棱镜。为了确认各表面的位置和存在必要性,我们必须思考系统中的光线是如何通过棱镜,并与各表面交互作用的。在下方示意图中我们可以清楚看到光线的路径、各表面的作用和编号,这些信息有助于棱镜模型的建立。 Y]gt86
$qrr]U
Io"=X!k
上方示意图中的红色数字代表该表面在镜头数据编辑器(Lens Data Editor, LDE)中的表面编号,Coordinate Break的存在已纳入考虑。至于“S#”则代表了棱镜的实际表面,可以在本文参考的专利模型中找到对应的表面。(我们也可以在LDE中的Comment区域看到上述的编号) dnaf>G3
举例,我们可以看到上方红框中的8-9-10表面代表了示意图中的表面9,同时也代表了实际棱镜的S1’表面,即S1的反射面(内表面)。而表面8和10则分别代表了LDE中的表面8和10,并作为表面9的Coordinate Break。 7T2W%JT-,
进行以上步骤时,光阑(stop, 在此为系统的入瞳)位置将被设为全局坐标参考(Global Coordinate Reference)。棱镜的第一面(S1或是Coordinate Break加入后LDE中的Surface 3)位于光阑后方18.25mm处,等同于Surface 1在LDE中的厚度。而这个距离在实际应用上是作为使用装置时的适眼距(eye relief)。除了坐标的设定之外,我们还需要思考如何设计表面的倾斜或偏心,才能使入射光顺利到达像面。专利设计中的参数和示意图可以在这方面提供不少帮助。 #i]@"R
UZAWh R
[
$"iO#oO
如下方示意图,可以看到入射光自S1(LDE中的Surface 3)进入棱镜,接着落在S2(LDE中的Surface 6)上。示意图中的S2作为一个平面镜,使进入棱镜的光线全数反射。在实际应用上S2是一个镀膜的半反射镜(half-mirror)。光线在到达该表面后会分成两个行进路径: 1)在棱镜内部发生反射,最后到达上方的微显示器;2)使外界光线顺利通过的透射路径。我们会在稍后的篇幅使用多重结构化编辑器建立第二道光路。为了使光线符合示意图中的行进方向,我们会再次使用倾斜和偏心的功能调整表面的位置。 d,)F #;^5
l9L;Tjj
<zDe;&
ca-n:1
注意: 为了更完整的呈现光线追迹路径,我们根据专利中微显示器的位置对像面进行调整,透过表面的倾斜或偏心使光学组件呈现正确的几何关系。
7:p]~eM)
TwhK>HN
检视光路图,我们会发现光线须在S1的内表面(即S1’)反射,才能顺利抵达微显示器(像面)。根据专利的说明,前述的光线转折是由界面处的全反射(TIR)所造成。我们在后续的”全反射(TIR)”段落中会提到更详尽描述,此处仅针对OpticStudio的操作做说明。 Jb$z(?S
<NAR'{f
由于在序列模式中无法仿真TIR,因此我们需要额外将S1’设为反射镜表面。此外,将表面的求解(Solve type)设为Pickup,可使此表面更符合S1(LDE中的surface 3)的实际表现,允许入射光同时呈现反射和穿透的现象。我们可以根据下图完成上述的设定步骤,使各表面对应的参数随LDE中Surface 9变更。 h?1pGz)[C
vaxg^n|v9
8
[."%rzN
最后我们以相同的方式在像面(LDE中的Surface 12)前插入一个表面,并设定正确的x-tilt和y-decenter。 IIR?@/q
Em]T.'y
7Rh:+bT
p.\KmEx
}-Ma~/
定义视角 (FOV) 6b8Klrar!
z$V8<&q
由于自由曲面的设计会随视场(field)变化,为了分析系统的FOV我们需要尽可能设定更多的视场点。OpticStudio允许使用者在给定的视场中间分割,并有效率进行优化。此外,这些视场点还必须在X和Y方向给予定义。由于范例档案中的光学系统并非旋转对称(该系统对称于YZ平面,但对XZ平面是非对称的),我们无法确保光线在正向和负向均有相同的行进路线。 Y'HF^jv]R
y^Jv?`jw
全反射 (TIR) gdZVc9_
AP7W)S
在实际的光学系统中,从微显示器出发的光线会在S1’面发生TIR。当光线从高折射率的介质射向折射率较低的介质,且入射角大于临界角时,此现象可能会发生在两介质的交界面。TIR的临界角如下所示: vp|=q;Q%r
s*X\%!l9
ni 代表光线入射的介质折射率,而nr 代则是发生折射的介质折射率。在本范例中,光线自PMMA(n=1.492)射向S1’表面。此时S1’表面的外侧为空气,因此nr=1。由以上的关系式我们可以得到TIR发生的临界角(θc)为 42.09度。实际的光线入射角会成为优化过程中的约束条件。 [O)Zof
2Ee1mbZVw8
创建矩形孔径 $P@cS1sB
xq)/ QR
我们可以在LDE的semi-diameter参数调整表面上的孔径(aperture)大小。考虑现实中楔形棱镜的几何关系,本范例中会以矩形孔径的形式呈现。矩形孔径可被定义在棱镜的任何表面上,我们可以在 Surface Property…Aperture Type中将孔径改为Rectangular Type。(由于Coordinate Break是虚拟表面,这些表面不会对光线行进造成任何改变,因此我们无法在此定义孔径。) ,Ex\\p-
hpyre B
优化 0EB'!
stG&(M
系统针对RMS波前(wavefront)进行优化,并且以质心(centroid)为参考点。我们可以逐步增加光瞳采样(Pupil Integration)中的环(ring)和臂(arm)以改良设计。以上步骤均可在优化函数编辑器(Merit Function Editor)中完成。至于约束条件的部分,我们可以选择以有效焦距(EFL)、厚度、全局坐标、光线路径长度、倾斜/偏心参数、角度和畸变等物理量作为限制。 5q#|sVT7R
3d<HIG^W}
首先,我们需要使用全局坐标约束条件(GLCX/GLCY/GLCZ)确保S1和S1’表面(LDE中的Surface 9和3)对齐,毕竟在实际应用上这两个面本来就是一体的。这些操作数(operand)将被用在surface 9和3的pickup参数上。 ;E"mB4/)
iHn]yv3
#
为了使整体光学架构更为简洁,我们可将光线路径长度作为约束条件。特别是从S3到像面以及S1’到像面的距离,针对这两个长度进行限制可确保像面被放在合理的位置。 Mfr#IzNHN
-Mvw'#(0
对表面的倾斜/偏心参数进行限制可使棱镜在优化过程中保持正常的形状,避免出现其中一个表面异常远离其他表面的现象。一开始所有表面的型态为标准透镜(Standard Lens),在优化的过程中会渐渐的变成偶次非球面(Even Asphere),部分表面最后将变为自由曲面型态。在本案例中,S1、S1’和S3表面(LDE中的 surface 3, 9, 12)会以Extended Polynomial的型态呈现,surface 2则会是Even Asphere。 MdjLAD)f+C
U:|v(U$"?
设定多重结构化编辑器(Multi-Configuration Editor) F)5Aq H/p
*Kkw,qp/
到目前为止,第一道光路(投影路径)的优化已大致完成。接下来我们将进行第二道光路(透视路径)的建立和优化。在这个阶段中,我们主要针对S2表面上的辅助镜头(auxiliary lens)进行设计。 -}sya1(<8
%Eh%mMb^
下图为FFS棱镜优化完成后的LDE,参数可能会因为优化的过程和视场的添加而存在些微的差异。我们可以在最终的范例档案中得到非球面和自由曲面系数。
*4:/<wI!
mwCnP8:K
T!A}ipqb
p4EItRZS
?t42=nvf
oI~Qo*4eh
注意: 在进行优化后,各表面在LDE中会呈现不同的颜色。我们也可以根据偏好在surface property中对颜色进行变更。 XXcf!~uO
在进行辅助镜头的建构时,我们首先将S4加入已建立的FFS棱镜模型中。此时多重结构编辑器(Multi-Configuration Editor, MCE)可以帮助我们将整个系统一分为二。如下图,我们可以看到投影路径和透视路径清楚的呈现。 49$4
5;
[|k$ v
t
g*[%Jf^
在根据光路对光学系统进行划分前,我们需要先在像面前加入S4表面(在实际应用上,S4会是第二道光路的光线在到达像面前的最后一个表面)。在LDE中加入S4和对应的Coordinate Break后的结果如下(surface 14, 15, 16为新增的内容)。 z=_{jjs
hUxhYOp
接下来我们会以多重结构编辑器(Multi-Configuration Editor, MCE)对光学系统进行划分。在明确的分割系统后,我们可针对不同目标和表面特性对单一光路进行优化。举例而言,设计者可以在针对FFS棱镜以RMS波前和有限远像面优化的同时,对辅助镜头和透视光路以无焦(afocal)为目标进行相同操作。在透视路径中,我们希望能在配戴装置的情况下仍可清晰看到外界景物,因此像面在这道光路中不会是位于焦点上的。为了使HMD的存在不影响使用者正常观看周遭环境,在模拟中我们必须使无穷远出发的影像光线能顺利映像在人眼的角膜(cornea)上。同时,我们还需要对辅助镜头进行优化,减少透视光路的畸变并消除光学系统的屈光效果。关于MCE的设定,我们可以在Help Files中找到许多有用的信息。(推荐阅读 “Multiple Configuration Editor” 和 “Multi-Configuration Operands” 这两个段落) X4G55]D$>
RT"2Us]*
观察上方个别光路的示意图和LDE,可以发现第一道光路包含了LDE中surface 0到surface 13的所有组件,以及像面(surface 17, 18)。第二道光路则涵盖了S1和S2表面,但不包括S1’和S3表面。因此在针对此光路进行设计和优化时,S1’和S3及相对应的Coordinate Break均会被忽略,仅会考虑Surfaces 0-7, 14-16 和 18。同时,像面的Coordinate Break也会被忽略,因为我们希望像面可以垂直于Z轴,正如实际应用上的外界入射光。 g VJ#LJ
f {c[_OR
在上方的MCE中,我们可以看到在configuration被设置为参数 ”1”,代表该操作数是有效的,而”0”则代表了该操作数不会对优化结果造成影响。透过操作数IGNR的设置,我们可以决定哪些表面会真正影响模拟结果,而哪些表面则是要被忽略的。举例而言,观察MCE我们可以发现surface 14到16(第3到5横列)不会对第一道光路造成影响。 7NC8<