跳到主要内容
Sandbox Physics

光学 008 · 光线世界、界面与自然光学

水下视觉观测站

分层式水下观测站用精确离轴子午像包络取代傍轴示意图,并加入真实光线与投射物对照、完整 Snell 临界锥以及水–玻璃–空气平面舷窗剖视。每种颜色都有明确物理角色,并共享同一个折射模型。

交互模型水下视觉观测站
主要界面结果 B\mathcal B0.500.50
视觉映射量 M\mathcal M50%50\%
几何检验 εg\varepsilon_g0.00π0.00\pi
模型适用区间模型适用\text{模型适用}

物理教程

审查水下视觉观测站的物理过程

背景三个场景都从平坦气–水界面的切向光学动量匹配出发:nwsinθw=nasinθan_{\mathrm w}\sin\theta_{\mathrm w}=n_{\mathrm a}\sin\theta_{\mathrm a}。同一个关系同时控制鱼体出射光线、水下所见临界锥,以及平行水–玻璃–空气相机舷窗中的每次穿越;投射物遵循另一套机械轨迹,不会继承光学折射。

为什么值得理解同一个平坦水面为什么会移动鱼的虚像、误导鱼叉、压缩整片天空并改变舷窗成像?

先抓重点

核心问题
同一个平坦水面为什么会移动鱼的虚像、误导鱼叉、压缩整片天空并改变舷窗成像?
一句话直觉
熟悉的“四分之三视深”只适用于法向观察极限。精确局部切向像深为 dt=[d2+(1μ2)xs2]3/2μd2d_t=\frac{\left[d^2+\left(1-\mu^2\right)x_s^2\right]^{3/2}}{\mu d^2}。它依赖水面交点偏移,因此画面中的相邻光线包络会连续移动,而不是保持任意固定缩放。

核心数学模型

离轴子午视深像

μ=nwna,dt=[d2+(1μ2)xs2]3/2μd2\mu=\frac{n_{\mathrm w}}{n_{\mathrm a}},\qquad d_t=\frac{\left[d^2+\left(1-\mu^2\right)x_s^2\right]^{3/2}}{\mu d^2}

这是相邻出射光线在子午平面中的局部包络。法向观察时,它等于真实深度除以相对折射率;接近临界角时则靠近水面。平面折射界面在离轴条件下并不形成完美等光程点像。

Snell 窗临界锥

θc=arcsin ⁣(nanw),Rwindow=dtanθc\theta_c=\arcsin\!\left(\frac{n_{\mathrm a}}{n_{\mathrm w}}\right),\qquad R_{\mathrm{window}}=d\tan\theta_c

整个水面上方半球都会映射到这一半角之内。圆形投影之外,水下观察者接收到的是来自水下并发生全反射的光,而不是透射天空光。

平行舷窗 shooting 方程

p=nisinθi,Δz=iLipni2p2p=n_i\sin\theta_i,\qquad \Delta z=\sum_i L_i\frac{p}{\sqrt{n_i^2-p^2}}

同一个守恒切向动量决定水、玻璃与空气中的角度。针对相机端点求解后,可以直接看出直线针孔光线为何会在错误位置穿过平面舷窗。

常见难点

让同一个浅层虚像适用于所有观察角

容易误解水下物体在任何角度都恰好位于真实深度的四分之三处,因此离轴光线也可以画向这个固定点。

正确理解这一比例只属于傍轴极限。精确相邻光线像依赖观察角,并在三维中分裂为两个主像;本实验只渲染并明确标注所声明的子午包络。

动手实验

  1. 01

    场景 1:精确视深像包络

    在视深像场景中,把水面交点从接近法向拖向临界侧,同时比较真实鱼体、紫色包络、傍轴参考与精确视深读数。

    应该观察到: 接近法向时,精确视深与傍轴视深近似一致;角度增大后,精确子午像快速上移,相邻反向延长线也不再汇聚成一个完美点。
  2. 02

    场景 2:瞄向虚像下方

    进入瞄准场景并按正确方向追踪信息:光子从鱼体到眼睛,而假设鱼叉从发射点进入水中。比较错误落点与金色修正轨迹。

    应该观察到: 瞄准虚像的直线投射物不会在水面折弯,因此落到真实目标之外;所需的向下修正会随视线偏移和深度增大。
  3. 03

    场景 3:Snell 窗与平面舷窗

    在 Snell 锥下方环绕观察并移动选定天空光线,再检查侧边平面舷窗剖视。分别辨认金色地平线边界、洋红全反射、绿色两次折射相机光线与紫色针孔误差。

    应该观察到: 地平线映射到临界圆环,而不是任意圆盘边缘。平行玻璃在两个舷窗面上保持切向动量,但得到的光线族并不是直线单视点针孔模型。