在本期基础转盘摄影测量系列教程中,我们将学习如何使用上一期结尾时在 Blender 中生成的带透明背景图像来重建高模几何体。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
大家好!在本期基础转盘摄影测量系列教程中,我们将学习如何使用上一期结尾时在 Blender 中生成的带透明背景图像来重建高模几何体。
此外,我们还会演示如何在处理过程中途暂停,调整重建区域的大小,然后从中断的位置继续处理。
首先,我打开在第二期中创建的 Meshroom 项目。该项目是在将 Feature Matching 节点的 Minimal 2D Motion 参数设置为 2 后保存的。
我将从 Blender 渲染得到的图像导入到 Image Gallery 选项卡中。正如红色快门图标所显示的那样,这次这些图像不包含额外信息,因为它们已经不再是原始照片,而是在 Blender 中创建的渲染图。

使用我们在第二期中讲解过的 Image Masking 节点可以保留原始数据,但去除绿色背景会稍微困难一些。另一方面,在 Blender 中更容易获得更好的 Color Keying 效果,但代价是会丢失原始 EXIF 数据。不过这并不是什么大问题,因为正如稍后将看到的那样,Meshroom 能够很好地处理这种情况。
我使用新的数据保存 Meshroom 项目,然后在 Graph Editor 中点击空白区域以取消选择所有节点。接着点击 Start 开始重建。
如果现在查看保存项目 MG 文件的文件夹,可以看到 Meshroom Cache 文件夹及其子文件夹。Meshroom 会在这里存储各个节点的日志文件和中间工作文件。
Meshroom 的这一功能非常实用,因为它允许根据各节点处理的数据类型,仅处理特定的信息部分。
在处理过程中,顶部的进度条会显示整个处理流程的总体进度,同时每个节点也都有自己的进度条。在这两种情况下,绿色表示处理已成功完成。橙色表示处理仍在运行。红色表示处理失败。青色表示该节点正在等待执行队列中。

这些进度信息可以在 Task Manager 选项卡中查看得更加详细。更多信息则可以在各节点的 Log 部分中找到。
另一个实用功能是,如果我需要中断处理并在之后重新启动,Meshroom 会为各个节点创建新的子文件夹,因此之前的工作不会丢失,同时我仍然可以访问不同阶段的处理结果。
说到中断处理,当 Structure From Motion 处理完成后,我立即点击 Stop。因为这是整个流程的第一部分,这样我就可以检查一些新的数据,并调整重建区域,也就是所谓的 Bounding Box。

首先,在 Image Gallery 选项卡底部,我们可以看到 Meshroom 已经识别并处理了全部 146 张输入图像。在我看来,这是一个相当不错的结果。
在 3D Viewer 选项卡中,可以看到表示各个相机的图标。这些图标代表照片拍摄时的视角位置。在 Image Gallery 中点击某张照片时,对应的相机会在 3D Viewer 中被选中。
在 3D Viewer 中,可以通过按住鼠标左键拖动来围绕枢轴点旋转视图。使用鼠标滚轮进行缩放。按下滚轮或中键可以平移视图。通过双击 3D 视图中的某个元素,可以重新设置枢轴点的位置。

现在我可以选择 Meshing 节点,并启用 Custom Bounding Box 选项来自定义重建区域。这个场景本身并不复杂,因此这一步看起来似乎没有必要,但在其他情况下,这个选项对于将重建限制在所需范围内会非常有用。
不过,仅仅启用 Custom Bounding Box 并不会显示重建体积。在 Meshroom 中,仅选择一个节点并不足以查看其特定信息或功能。你需要双击该节点。
现在,我可以利用出现在 Bounding Box 中心的变换控制器来交互式定义 Bounding Box。箭头用于移动 Bounding Box 的中心位置。方块用于沿某一轴向调整其尺寸。圆环则用于绕各轴进行旋转。
定义好 Bounding Box 后,我可以点击 Start,从之前中断的位置继续执行几何体重建流程。

现在查看项目 Cache 中的某个子文件夹,可以发现已经创建了一个新的文件夹。这是因为之前的处理流程被中断了,因此新的数据会存储在新的子文件夹中。
默认情况下,这些子文件夹的名称比较通用。不过你可以在各节点的 Folder 字段中修改它们的名称。如果你需要使用不同参数进行多次测试,这会非常方便,因为你可以根据所做的修改来命名文件夹。无论如何,你也可以直接按日期排序,从而快速找到最新的处理结果。
我在最后一个处理步骤 Texturing 完成后恢复了视频录制。在开始处理之前,我没有修改该节点的默认参数,因此 Meshroom 应该已经生成了一个 OBJ 文件,以及一个 EXR 格式的 Base Color 纹理,并使用 UDIM 方式进行 UV 展开。
不过,在 Meshroom 的菜单选项中,我并没有看到任何将该网格导出到磁盘指定位置的功能。
不用担心,因为网格和纹理实际上已经保存到了磁盘中。它们的文件路径可以在 Texturing 节点的 Attributes 选项卡底部找到。
更简单地说,这些文件就位于 Texturing 文件夹中最新生成的那个子文件夹内。
我将 EXR 文件和 OBJ 文件复制到项目主文件夹中,并将副本重命名为 High Poly。这样我就可以安全保留原始文件,并在 Blender 中使用这些副本继续工作。

我保存 Meshroom 项目的修改并关闭程序。之后当我需要将 High Poly 版本的纹理 Bake 到 Low Poly 版本时,还会重新打开它。在下一期教程中,我将向大家演示如何将 High Poly 版本导入 Blender,并在创建 Low Poly 版本之前对其进行清理。下期见!