# 光学模型与验证要求

## 1. 坐标和解剖

专业轨道采用右手系：`+z` 指角膜到视网膜，`+x` 和 `+y` 在题面定义为图像右/上；左右眼和患者解剖鼻颞侧需另做映射。模型内部用 m、rad、无量纲折射率，报告可用 mm、µm、nm、D、arcsec。屈光度 `D = m⁻¹`，不能直接当作几何曲率。

顺序：空气 → 泪膜/角膜 → 房水 → 虹膜瞳孔 → 后房 ICL → ICL 与天然晶状体的间隙 → 天然晶状体 → 玻璃体 → 视网膜。虹膜是孔径结构，不是给所有光线施加折射的透明面。具体表面与介质以各题为准。

ICL vault 在题面所指定轴上测量人工晶体后表面到天然晶状体前表面的距离；真实临床测量定义需专家核验。改变 vault 时要明确是刚体平移、形变还是同时改变其他结构。当前薄相位核心没有 vault，输入该字段应报不支持，不能假装它产生了厚透镜效应。

## 2. 专业轨道最低光传播模型

### 几何阶段

对每条光线保存位置、单位方向、波长、介质及能量权重。求最近有效表面相交，记录入射面法向，使用 Snell 定律 `n₁ sin θ₁ = n₂ sin θ₂`；超过临界角时处理全反射。用 s/p Fresnel 系数或题面允许的无偏振平均分配反射/透射能量；沿路径处理吸收、孔径遮挡及探测器外损失。

介质映射而非“碰到面就切换折射率”决定孔内路径。中央孔必须有几何边界、液体介质及孔壁；孔径变化后光线可穿过不同表面集合。追踪孔壁/前后界面相关路径时保留路径族标签，以便消融验证。非顺序传播用于反射鬼像、边缘和孔壁路径；直接主光路可使用顺序传播。

### 波动阶段

对平滑近轴主路径，可从几何传播获得出瞳复振幅和光程差 `W(x,y; λ)`：

```text
U_pupil(x,y; λ) = A(x,y; λ) exp(i 2π W(x,y; λ) / λ)
PSF_λ ∝ |P[U_pupil]|²
PSF_poly = Σ_λ w_λ PSF_λ    （同一物理探测坐标，非相干光）
```

`P` 根据传播距离与近轴条件选择 Fraunhofer、Fresnel、角谱或更完整的衍射积分。近场/孔壁结构无法由单出瞳平面正确表达时，需要局部波动传播，明确近似误差；不能声称单次 FFT 已涵盖所有孔壁或宽角杂散光。

对于彼此相干的路径先叠加复振幅；非相干路径叠加强度。相干性由光源带宽、路径差与模型假设决定。普通宽带场景不能把所有波长的电场直接相加。几何杂散光和波动主路若混合，必须分配能量预算，不能重复计算同一光束。

### 场景阶段

等晕、小视场时，线性无相干成像可用 `I_retina = I_scene * PSF`。强离轴/偏心/空间变异场景使用局部 PSF 图谱或直接光传输。FFT 卷积须足够补零并处理边界；不能用周期回卷冒充光晕。

输出角坐标与视网膜长度换算采用题面给定的模型参数/有效焦距，不能固定套用未说明的眼焦距。颜色计算需说明光源谱、权重、感光响应及是否是光度或辐射度权重。显示曝光与色调映射必须固定，并保留线性 HDR 数据。

## 3. 必须分辨的机制

| 机制 | 应有建模证据 | 不接受的替代 |
|---|---|---|
| 瞳孔衍射 | 有限孔径和波长、Airy 极限 | 任意 blur 大小 |
| 残余离焦与散光 | 波前/曲面和屈光参数变化 | 根据症状文字贴图 |
| 高阶像差 | 明确系数、定义、瞳孔归一化 | 把所有彗差都称为散射 |
| 人工晶体光学区边缘 | 瞳孔/光学区相对位置、通路分类 | 默认边缘外绝对不透光 |
| 中央孔相关现象 | 正确液体通道、材料边界、路径/波前消融 | 通孔等于黑盘；预设固定亮环 |
| 反射鬼像 | 界面、路径权重与焦面位置 | 无源强变化的叠加亮环 |
| 散射/泪膜 | 独立参数、来源及可辨识性 | 用未知散射吸收所有误差 |
| 主观感受 | 光学预测与心理物理/临床证据的区分 | PSF 唯一决定个体不适 |

表中的机制是评测必须允许鉴别的候选机制，不表示它们在每种 ICL 设计、每位患者中都同样重要。

## 4. 已实现的等效薄相位核心

当前核心故意采用可审计、可解析检验的近似，而不是假装提供厂家 ICL 全眼仿真。

以瞳孔平面 `(x,y)` 和合成晶体平移 `(dₓ,dᵧ)` 定义 `r²=x²+y²`、`ρ²=(x-dₓ)²+(y-dᵧ)²`。晶体材料掩膜为光学区内且透明孔外：`M = 1[ρ≤R_optic] × 1[ρ≥R_port]`。当孔径为 0 时无孔。

```text
W = - D_eye r²/2 - M D_ICL ρ²/2 - C (-x sin a + y cos a)²/2
A = 1[r≤R_pupil] × (M t + (1-M))
U = A exp(i 2π W/λ)
```

`D_eye` 是在选定参考像面上的等效残余正会聚光焦度，`D_ICL` 是等效矫正光焦度，两者不应直接当成患者眼镜处方和真实产品标称值。`C` 是额外等效柱镜光焦度，`a` 为无柱镜作用的轴方向，`t` 为振幅透射率。基线 `+8/-8 D`、共轴、无孔且瞳孔小于光学区时相位抵消，得到圆孔衍射极限。

孔内 `M=0`，所以**仍透光但不接受该区域的 ICL 矫正**。光学区外在这个合成模型中也设为透光无矫正；真实产品周边结构不能由此推断。本核心零厚度、共平面、不含材料相位常数/厚度、反射、孔壁、vault、角膜/天然晶状体独立表面或临床散射。中央孔造成的相位差及其衍射仅是此模型的后果，不能标注为真实 ICL 孔相关光圈真值。

单色 FFT 根据 Parseval 以入射瞳孔采样点能量归一化。各波长按实际角采样间隔，用源像素/目标像素重叠面积作守恒重采样，再按非相干权重相加；通过插值累积能量在目标像素边界的值实现，不会凭空增加能量。源像素内采用常量能量密度近似，需要独立检查 padding 与角采样收敛。本核心不含色散，只有衍射的波长依赖。输出记录 `throughput` 与 `captured_energy`，二者不能混为一谈。条件 PSF 只在所声明的有限视场内积分为 1。

这个实现可以用于查错、教学和开发评测器。专业轨道必须另外建立上述全眼/厚晶体环境。

代码对每个透光区域的平滑相位梯度作采样保护：每像素相位周期不得达到 0.45；超限直接报错，需增加 `grid_n`。该保护不证明材料边界已收敛。大瞳孔超出光学区的 demo 使用更密的 1536 网格，其余图仍以同一探测网格显示；额外 2048 网格交叉检查见 `validation.md`。

## 5. 验证矩阵

| 检验 | 不变量/极限 | 用途 |
|---|---|---|
| 圆孔 | 首暗环 `θ≈1.22 λ/D`（小角、均匀圆孔） | 独立解析衍射检查 |
| 理想非相干 MTF | `2/π[acos ν - ν√(1-ν²)]`，`0≤ν≤1` | 独立频域检查 |
| 无孔补偿 | `D_eye + D_ICL = 0`、共轴 | 验证相位抵消 |
| 透明孔 | 单位振幅，无吸收时瞳面总透过率为 1 | 防黑盘错误 |
| 零矫正孔 | `D_ICL=0,t=1` 时开/关孔应完全等效 | 机制消融 |
| 振幅 | 整体振幅乘 t，总能量乘 t² | 防强度/振幅混淆 |
| 被动界面 | 反射+透射+吸收=入射（介质功率定义一致） | 专业轨道能量检查 |
| 对称/旋转 | 只在相应结构与照明对称时成立 | 方向/坐标检查 |
| 瞳孔/波长 | 圆孔衍射角尺度 λ/D；不能推广到含像差总体光晕 | 区分衍射和离焦 |
| 网格/视场 | 独立加密，结论应在容差内稳定 | 防混叠、裁切与回卷 |

薄相位核心的测试只覆盖其解析极限及物理不变量。另新增的 [合成厚眼原型](thick-eye-model.md) 已实现多表面、有限体积ICL、透明孔与壁交互及功率核算，并生成夜景。它没有完成完整波动耦合、反射鬼像或临床验证，不能据核心测试通过声称专业轨道整体已验证。
