附录 A6 - 场景尺度与几何精度¶
观测距离变长、三角形变大时,交点和影像是否仍然准确?本例用一个倾斜平板和一条窄遮挡板,分别改变传播距离、平板尺寸和观测角度,再比较原始三角形与自动细分后的结果。
场景与输入¶
可选择案例、后端和网格,拖动旋转,也可单独打开三维预览。默认显示中心 4 m × 2 m 的窗口和短光线段;勾选 Full scene 可查看完整平板与测站位置。橙点为模拟交点,黑色十字为解析交点。
以平板中心为水平坐标原点,平板满足 \(z=2+sx\),其中 \(s=1/32\)。窄板与它平行,高出 0.25 m,宽 0.5 m、长 6 m。两者均不透明,采用 Lambertian 反射,反射率分别为 0.4 和 0.1。
| 条件 | 设置 |
|---|---|
| 光照 | 550 nm 垂直平行太阳光,法向辐照度 1 W m⁻² nm⁻¹ |
| 环境 | 无大气、无天空光,开放边界 |
| 辐射分量 | 一次表面反射的直接太阳辐亮度 |
| 平板边长 | 20 m、1 km、10 km |
| 中心观测距离 | 10 m、1 km、10 km |
| 观测方向 | 从东侧观测,天顶角 0°、30°、75° |
| 辐射影像 | 64 × 8 像素,Z = 2 m 水平参考面上的范围为 4 m × 2 m |
| 采样 | 每像素 64、256、1024 个样本,最终采用 1024 |
| 几何交点 | 7 条无发散光线,覆盖平板及遮挡板边缘内外 |
共采用七组输入,每次只改变一个因素:
| 组别 | 平板边长 | 观测距离 | 观测天顶角 |
|---|---|---|---|
| 基准 | 20 m | 10 m | 30° |
| 远距离一 | 20 m | 1 km | 30° |
| 远距离二 | 20 m | 10 km | 30° |
| 大三角形一 | 1 km | 10 m | 30° |
| 大三角形二 | 10 km | 10 m | 30° |
| 天底 | 20 m | 10 m | 0° |
| 掠射 | 20 m | 1 km | 75° |
原始平板与窄板各由两个三角形构成。调用 scene.subdivide_large_primitives(max_area=S*S/256) 后,边长为 S 的平板被细分为 512 个三角形,平面形状、反射率与观测条件不变。实际三角形数量也逐次检查,整个场景细分后为 514 个三角形。
独立解析参考¶
交点与距离¶
对于平面 \(\mathbf n\cdot\mathbf p=b\),从 o 沿单位方向 d 发射的光线满足
分别求平板和窄板的交点,保留位于各自边界内的最近正距离交点。这样可以直接检查漏交、错误遮挡、交点位置和距离。另计算模拟点到最近表面平面的垂直距离,检查交点是否偏离表面。
辐亮度和遮挡边界¶
太阳垂直照射时,两块板的入射余弦均为 \(1/\sqrt{1+s^2}\)。未遮挡区域的辐亮度为
窄板自身、它在平板上的投影和未遮挡平板分别具有三种已知辐亮度。设观测天顶角为 θ、窄板宽度为 w、高度差为 h,记 \(a=1-s\tan\theta\)。在影像水平参考面上,阴影与可见窄板的区间分别为
两区间重叠时,看到的是上方窄板。参考按各区间与像元的重叠长度积分,得到边缘像元的解析平均值,随后与模拟影像逐像元比较。
验证结果¶
各列使用相同色标。天底观测时阴影被窄板遮住;倾斜观测时,可以同时看到窄板及它投在平板上的阴影。
实线为粗网格,虚线为细分网格。距离和三角形尺寸分别改变,便于区分长距离传播与几何表示的影响。
| 指标 | 阈值 |
|---|---|
| 交点位置、距离的最大绝对误差 | 各 ≤ 0.01 m |
| 交点到最近表面平面的最大距离 | ≤ 0.002 m |
| 逐像元绝对误差均值 / 未遮挡平板辐亮度 | ≤ 1% |
| 完全受光像元的最大辐亮度相对误差 | ≤ 0.1% |
| 粗网格与细分网格的列平均影像差异 | ≤ 0.5% |
| 最后两档采样的列平均影像变化 | ≤ 0.5% |
后两项以未遮挡平板辐亮度归一化。位置与距离由无发散点云直接计算,不经过波形距离分箱。
| 后端 | 最大交点误差 / mm | 最大平面偏差 / mm | 最大距离误差 / mm | 影像平均误差 | 结论 |
|---|---|---|---|---|---|
| optix | 0.7779 | 0.0075 | 0.2509 | 0.0852% | 通过 |
| vulkan | 0.7779 | 0.0075 | 0.2509 | 0.0852% | 通过 |
| embree | 0.4561 | 0.0005 | 0.2402 | 0.0852% | 通过 |
42 组三后端与网格组合全部通过。在上述测试条件下,粗网格和细分网格均满足阈值;细分使部分交点误差进一步减小。
下载与复现¶
保持脚本与 data/geometry-scale/ 的相对位置,安装 LESS、NumPy 和 Matplotlib 后运行: