← 探索新知
ASTERXOR / 探索新知

镜子,是个出奇严格的讲述者

玻璃后看似存在的世界,遵循精确的几何规则。

金色反射光线遇到蓝色镜面线,虚线延伸到虚像点。
任意距离单位下的二维平面镜构造。
探索新知ASTERXOR / LEON LEUNG

镜子怎样决定你能看见房间的哪一部分?

镜子并不是把一张固定画面展示给面前的所有人。移动眼睛,能到达你的光路就变了。但反射点的表观位置依然规整:理想平面镜中,像在镜后的垂直距离,与原物在镜前的距离相同。

像的位置不变,通向它的路径却会改变。
THE NORMAL

从法线量角度

反射定律比较入射和出射光线相对于法线的角度,法线垂直镜面。理想镜面反射中,这两个角相等。若从表面量,得到的是余角,因此明确基准,可以避免光路图里很常见的混淆。

镜面位于水平线y等于0。光源坐标为−3、2,眼睛坐标为3、3,都在镜面上方。我们要寻找光线从光源反射进眼睛时的镜面交点,假定周围介质均匀、光沿直线传播。

从眼睛反向画线是一种计算方法,不是在说眼睛发出了所见的光。在这套可逆的几何模型里,同一路径可以从任一方向核对。图中同时有实线光路与虚线延长线时,尤其应分清这一点。真正需要到达观察者的是镜前反射光段;延长线用来定位光仿佛来自哪里。

真实光源、眼睛、反射点、法线和虚光源构成一致几何。
FIG 01真实光源、眼睛、反射点、法线和虚光源构成一致几何。
THE VIRTUAL SOURCE

先映射光源,再追踪光线

一个方便的构造,是把虚光源放在−3、−2,与真实光源隔镜面对称。从虚点向眼睛画直线,它在x等于−0.6处穿过镜面。再把真实光源连到这个交点,就得到所需入射光线。

脚本用向量反射公式核对出射方向,两侧相对法线的角度都约50.19度。镜后虚线只是几何延长线。眼睛把出射光解释为来自该点,并不要求光真的穿过镜面到那里。

“位于镜后同样距离”指的是到镜面的垂直距离,并不是虚像离每位观察者都一样远。这里的虚拟点始终在镜面下方两单位,但它到位于 (3, 3) 的眼睛的直线距离是 61 的平方根。眼睛移动时,这段距离与观看方向会改变,虚拟点本身却无需移动,也不需要换成另一个被反射物体。

本均匀介质平面镜例子中,路径长度在x = −0.6处最小。
FIG 02本均匀介质平面镜例子中,路径长度在x = −0.6处最小。
PATH LENGTH

最短路径,解释同一个点

对于平面镜和均匀传播速度,正确折线路径,也是所有只接触一次镜面的路径中总长度最短的。把一个端点镜像后,折线变成直线,几何更容易看懂。计算长度约7.810距离单位。

路径长度图尝试镜面上的其他交点,最小值出现在等角位置。这是驻定光程思想的一个受限例子,不表示所有光学系统都简单选择几何最短路。折射、多界面和更复杂路径,需要各自的光学分析。

光源固定,眼睛位置不同,就使用不同镜面点。
FIG 03光源固定,眼睛位置不同,就使用不同镜面点。
MOVE THE OBSERVER

眼睛移动,虚物体不动

最后一图保持眼睛高度和光源不变,只水平移动眼睛。每个位置使用不同镜面点,虚光源仍在同一组镜像坐标。所以即使进入眼睛的光线改变,反射场景仍像镜后稳定存在的空间。

有限镜面还增加可见条件:需要的反射点必须落在真实反射区域内。移动足够远,交点可能越过边缘,物体便从视野消失。镜框无法再容纳必要光路时,虚像位置本身不必改变。

WHAT IS REVERSED

反转,有明确方向

坐标构造翻转垂直镜面的分量,保留平行镜面的坐标。在这个二维例子里,y变号,x不变。这比笼统说镜子交换左右更精确;后者把光学变换,与我们拿自己比较一个想象中面对面的人时的方式混在一起。

真实镜子还会更复杂。玻璃后的反射镀层可能产生微弱附加反射,曲面会改变物像关系。粗糙表面把光散向许多方向,而不是本文单一理想反射方向。这些都不在简洁的平面镜几何内。

A DRAWING CHECK

可信的倒影,需要一致光路

绘画中,即使镜中物体画得很漂亮,倒影也可能不对。表观位置、可见部分和观察者位置,必须符合相同几何。虚光源构造让我们能在添加材质和戏剧性灯光之前,具体检查这些关系。

有用习惯是把镜子看成对光线的约束,而不是贴在墙上的图片。问观察者在哪里、像看起来在哪里,以及连接线是否经过镜面。镜中世界之所以有说服力,是因为这些答案彼此配合。

二维草图只检查一个截面,通过它并不能保证物体在真实矩形镜中可见。三维构造还必须检查交点是否位于上下边缘之间,以及光路有无被遮挡。不过步骤依然相同:把光源关于镜面反射,连接虚拟点与眼睛,再判断交点是否落在实际镜面边界内。边界属于问题本身,并不是事后添加的装饰框。

A FINITE WINDOW

找出能装进镜框的观察位置

为镜子指定尺寸:反射线段从 x = −1 延伸到 x = +1。光源保持在 (−3, 2),眼睛沿高度三的水平线移动。若眼睛的横坐标为 e,连接虚拟光源与眼睛的直线在 x = (2e − 9)/5 处穿过镜面。这个表达式把“移出镜框就看不见”的口头描述,变成可以检验的可见条件。

要求交点在 −1 与 +1 之间,可得眼睛的位置范围为 e = 2 到 e = 7,包括理想化的边界接触。e = 3 时交点仍是 −0.6,能看到该点。e = 0 时需要的交点为 −1.8,在镜子左边;e = 8 时为 +1.4,超出另一边。这些光路符合无限平面的几何,但有限镜子在所需位置并没有反射表面。

新增图把容许的镜面范围与计算出的交点曲线放在一起。布置场景时,这个区别很有用:加宽镜子可以容纳更多观察位置,却不改变虚像的表观深度;移动观察者可以改变可见性,也无需移动虚像。计算把眼睛与光源视为点,忽略遮挡、玻璃厚度和反射强弱。这里允许交点恰在边界,但真实镜框与有大小的瞳孔需要更细的模型。

三个允许观察位置的光路图,旁边是所需反射交点的曲线,并以阴影表示有限镜面范围。
FIG 04x = −1 至 +1 的有限镜面,在眼睛高度为 3 时,只允许横坐标 2 至 7 的观察者看到该点光源;等角构造与可见性不等式一致。
留一个想法带走

镜中深度,是光线看似从哪里出发的有序结果。