光线追踪教程(第 B 部分):编辑棱镜与透镜
在 第 A 部分 中,你加载了 棱镜演示, 运行了光线追踪器并检查了探测器输出。在本部分中,你将开始 操作几何:首先通过缩放棱镜,然后用真正的透镜替换 前方的棱镜。在此过程中,你将看到 Mesh editor 与 Object editor 如何协同工作。
OghmaNano 的网格系统使用 程序化基本体 (盒体、棱镜、球体、透镜等)与 导入的 CAD 文件 的混合。基本体形状 由软件即时生成,计算非常快;CAD 网格从 磁盘读取。在本教程中我们只使用基本体。
步骤 1:使用 Mesh editor 缩放棱镜
确保你已打开棱镜演示场景,如第 A 部分所示。我们首先改变 其中一个棱镜的尺寸。
- 在场景中右键单击 金字塔/棱镜 物体。
- 从上下文菜单中选择 Mesh editor,如 ?? 所示。
Mesh editor 将以当前形状被选中的状态打开。在本例中 Prism 选项卡处于活动状态。我们将沿 x 方向缩小棱镜。
- 在 xyz size 下,将
dx从4.0 cm设置为2.0 cm,如 ?? 所示。 - 将
dy与dz保持为4.0 cm。 - 确保 Peak in center 切换为 On。
- 关闭 Mesh editor。
dx 从 4.0 cm 降至 2.0 cm。更新将
立即应用到场景中的物体。
现在点击 Run simulation(或按 F9),并将新的光线轨迹 与第 A 部分中的原始轨迹进行比较。你应该会看到较窄的棱镜改变了 光线的折射方式以及它们如何填充探测器。
步骤 2:用透镜替换棱镜
接下来你将把该物体转换为真正的 透镜。我们仍从 Mesh editor 开始,但这一次切换形状类型。
- 右键单击同一个物体并再次选择 Mesh editor。
- 在 Mesh editor 顶部的工具栏中点击 Lens 图标,如 ?? 所示。
将透镜参数设置如下:
- Surface 0 – Lens type:
Spherical - Surface 0 – Direction: On
- Surface 1 – Lens type:
Spherical - Surface 1 – Direction: On
- Body – ct:
1.0e-2 m - Body – Diameter:
0.05 m - Body – Hole diameter:
0.0 m(实心透镜)
这些数值给出一个紧凑的透镜,能够轻松放置在光源与探测器之间。 关闭 Mesh editor。回到主窗口后你应看到先前的棱镜已被 透镜替换,但它可能尚未与光轴对齐。
步骤 3:使用 Object editor 旋转透镜
通用的 Object editor 控制任何物体的位置、旋转、颜色与材料 。我们将用它来旋转透镜,使其轴线与入射光线对齐。
- 右键单击透镜并选择 Edit object,如 ?? 所示。
- 在 Object editor 中将旋转设置为:
- x-axis:
90.0度 - y-axis:
90.0度 - z-axis:
0.0度
- x-axis:
- 关闭 Object editor。
90.0 度,使透镜朝向光源。
关闭编辑器后,透镜现在应正确位于光路中。如果其位置 略有偏差,你可以用鼠标拖拽它以微调其在光源、 棱镜与光阑之间的位置。
再次运行仿真。场景现在应与 ?? 类似,其中 透镜将聚焦并重新分配彩色光线。
步骤 4:移动光阑并使用碰撞检测
最后我们将调整 光阑(带孔的红色板)的 位置。这让你可以实验光束裁剪以及探测器图像中的“孔”。
- 在 3D 视图中,用鼠标拖拽光阑,将其朝透镜方向移动。
- 你会注意到在拖拽时,光阑会与其他物体发生 碰撞, 并且无法穿过它们——OghmaNano 默认阻止物体相互重叠。
- 要强制光阑穿过另一个物体,在拖拽时按住 Shift。这将 临时禁用碰撞检测。
- 将光阑放置在靠近透镜的位置,如 ?? 所示。
- 再次运行仿真并观察光束轮廓与探测器输出如何变化。
如果任何物体被卡在另一个物体旁边,请记住你始终可以使用 Shift+拖拽 来自由移动它。这在你有一个拥挤的场景、 含有大量重叠光线与光学元件时尤其有用。
👉 下一步:继续到 第 C 部分,更详细地分析探测器图像与光束轮廓, 并探索这些输出如何与你的光学设计选择相关。