Home Examples Screenshots User manual Bluesky logo YouTube 中文
OghmaNano Simulate organic/Perovskite Solar Cells, OFETs, and OLEDs DOWNLOAD

形状数据库教程(第 A 部分):从图像创建 3D 形状

OghmaNano 中的形状数据库是一个可在不同仿真之间复用的几何对象存储库。 它尤其适用于那些难以用简单解析函数描述的形状——例如来自 AFM 的表面粗糙度、由 2D 图像生成的光子晶体, 或导入的 CAD 几何体。形状一旦在此构建并存储,就可以附加到 Optical Workbench 中的对象上, 用于光线追迹、FDTD 或其他光学仿真。

在第一部分中,你将从内置的 2D 图案创建一个简单的演示结构,将其转换为 3D 三角网格, 并探索网格分辨率如何同时影响视觉质量与仿真的计算成本。

步骤 1:打开形状数据库

从任意仿真开始(例如 薄膜反射 光线追迹演示)。 点击功能区中的 Databases 选项卡,然后点击 Shape database,如 ?? 所示高亮。这样会打开形状数据库窗口 (??)。

OghmaNano Databases ribbon with the Shape database button highlighted.
Databases 功能区选项卡中的 Shape database 按钮。 点击它会打开可复用形状的中央存储库。
Main Shape database window showing a list of existing shapes such as afm_image, box, saw_wave and teapot.
形状数据库主窗口。每个图标对应一个已存储的 3D 形状 (例如 afm_imagephotonic_xtalsaw_waveteapot)。你可以在多个仿真中复用它们。

步骤 2:创建新的形状条目

要创建新的形状,在形状数据库窗口的空白区域右键单击并从右键菜单中选择 New → New shape,如 ?? 所示。

Shape database context menu with New → New shape selected.
从形状数据库创建新的形状条目。 右键单击并选择 New → New shape

会弹出一个对话框要求输入新形状名称。输入 demo 并点击 OK。随后会打开该新形状的 形状编辑器窗口 (??)。

步骤 3:查看默认的形状编辑器视图

形状编辑器左侧显示 3D 视图,右侧显示 2D 图像 (??)。 默认的 2D 图案是在黑色背景上的白色圆点阵列,代表光子晶体或柱阵列。初始时,3D 视图中只有一张平面网格。

Initial Shape editor window showing the default 2D photonic crystal pattern and an empty 3D grid.
新形状 demo 的初始形状编辑器视图。 右侧面板显示默认的 2D 图案;左侧面板将在网格构建后显示 3D 网格。
Shape editor with an initial 3D pillar array built from the photonic crystal image.
使用默认设置的第一次网格构建。 右侧的 2D 图案已被挤出为左侧的 3D 柱阵列。 在此阶段柱体可能看起来棱角分明,不太圆滑。

形状编辑器顶部的工具栏包含本教程的三个关键按钮:

步骤 4:构建你的第一个网格

点击 Build Mesh(蓝色三角形图标)。右侧图案会被转换为左侧视图中的 3D 柱阵列, 并生成一个三角形表面网格来近似 2D 形状 (??)。

使用鼠标旋转并缩放 3D 视图。你很可能会注意到柱体非常棱角分明——更像三角形而不是圆形。 这是因为初始网格分辨率被刻意设置得较低,仅使用适量的三角形以保持网格轻量。

步骤 5:细化网格分辨率

为了提高形状的保真度,点击形状编辑器工具栏中的 Edit Mesh。 这会打开Configure mesh窗口 (??)。

Configure mesh window showing x-triangles, y-triangles, method and minimum allowable angle.
Configure mesh 窗口。 在这里你可以设置 x 和 y 方向的初始三角形数量,并选择网格生成方法。
Shape editor after increasing mesh resolution, showing a smoother pillar array.
提高分辨率后的细化网格。 更高的三角形密度会生成更加平滑且更忠实于原始 2D 图案的表示。

重要字段包括:

尝试将 x-trianglesy-triangles 的分辨率都从 20 提高到 40, 然后点击 OK 关闭对话框并再次点击 Build Mesh。 重复这个过程几次,尝试 40 × 40 或 50 × 50 等数值,并观察 3D 柱体形状如何变化。

请记住,使用 Node reduce 方法时,算法先从完整的三角形网格开始, 然后剔除那些对表示形状不重要的三角形。因此最终网格包含的三角形数量 会比原始的 x-triangles × y-triangles 乘积所暗示的数量更少

步骤 6:对比细化后的网格

在提高分辨率并重建后,你应该会得到与 ?? 类似的网格。此时柱体看起来会更接近圆形,三角形棱面更小且分布更均匀。

步骤 7:选择网格生成方法

对于许多图案,Node reduce 算法表现良好,因为它会移除冗余三角形并保持形状紧凑。 然而,对于某些表面——尤其是 AFM 高度图或其他粗糙表面——丢弃三角形可能导致细节丢失。 在这种情况下,你可能更倾向于使用不减少节点数的方法 (例如在 Method 下拉菜单中可用的 no-reductionuniform grid 选项)。 这会在整个图像上保留规则的三角形网格。

无论选择哪种方法,都需要在准确性速度之间取得平衡。 每增加一个三角形,都会增加后续光学仿真的成本。实际上,运行时间往往会随总三角形数量以快于线性的速度增长,因此:

👉 下一步:继续阅读 第 B 部分 (占位符),学习如何将外部 CAD 文件导入形状数据库,并将其转换为适用于 OghmaNano 仿真的网格。