光线追迹教程(第 D 部分):添加形状与材料
在前面的部分中,你使用了已经为你设置好的对象:两个棱镜、 一个透镜、一个光阑和一个探测器。在本部分中,你将向 场景中添加一个全新的对象。这涉及两个步骤:
- 定义 网格(用于光线追迹的 3D 形状)。
- 从中选择形状所用的 光学材料。
我们将创建一个新的自由对象,启用从形状数据库获取的复杂网格,然后 用经典的光线追迹形状替换默认盒体:茶壶。
步骤 1:创建新的自由对象
从你在 第 C 部分 完成的场景开始 (已放置透镜、光阑与探测器)。要添加一个新对象:
- 在地面网格的空白区域上右键点击(确保你没有点击到对象)。
- 在上下文菜单中选择 Objects → New free object,如 ?? 所示。
- 场景中将出现一个新的盒状对象,如 ?? 所示。 你可能需要稍微缩小以便看到它。
步骤 2:启用复杂网格
新的自由对象起始使用一个简单的盒状网格。要使用数据库中更复杂的形状 (例如茶壶),你必须先启用复杂网格:
- 右键点击新盒体并选择 Mesh editor,如 ?? 所示。
- 网格编辑器将打开。起初网格为 disabled——这表示该对象 仅使用简单的盒状几何。
- 点击 Disabled 按钮以启用复杂网格。面板现在显示一个 Shape Database 条目,并选择了 box,如 ?? 所示。
此时对象已具有完整的网格表示,但我们仍在使用盒体。在下一步中, 我们将把形状替换为茶壶。
步骤 3:从形状数据库加载茶壶
在网格编辑器中,保持在 Shape Database 选项卡。我们现在选择茶壶并 设置其尺寸:
- 将 xyz size 字段设置为
dx = 5.0e-2 m,dy = 5.0e-2 m,dz = 5.0e-2 m,如 ?? 所示。这会使茶壶 足够小,从而能舒适地放入场景中。 - 点击 Shape from database 旁边的 ... 按钮。这将打开 形状浏览器,如 ?? 所示。
- 双击 teapot 以选择它。
- 关闭网格编辑器。
当你关闭网格编辑器后,场景中应当包含一个茶壶形状对象来替代 原始盒体,类似于 ??。
步骤 4:设置光学材料
网格仅定义几何形状。要完成该对象,你还需要选择茶壶所用的材料:
- 右键点击茶壶并选择 Edit object,如 ?? 所示。
- 在对象编辑器中,在 Optical material 下,从材料数据库中选择合适的玻璃 (例如 glasses/flint/BAF10.yml),如 ?? 所示。
- 可选:调整 Alpha 值以改变茶壶在 3D 视图中的透明程度。
- 点击绿色对勾图标关闭对象编辑器。
步骤 5:放置茶壶并运行仿真
最后,将茶壶移入光束并运行光线追迹器:
- 用鼠标左键拖拽茶壶,直到它位于透镜与探测器之间的光路中,如 ?? 所示。
- 如果碰撞检测阻止其穿过其他物体,在拖拽时按住 Shift 以强制移动。
- 点击 Run simulation(或按 F9)在茶壶就位后重新追迹光线。
你现在应当能看到光线穿过茶壶并绕过茶壶,散射到探测器上。 尝试旋转相机以观察由茶壶形成的焦散与阴影区域。你也可以 重复 第 C 部分 中的步骤来检查更新后的 探测器图像与效率。
👉 下一步: 继续阅读 第 E 部分,学习了解如何更改材料以及如何设置世界尺寸。