英特尔® 实感™ F200 摄像头的最新版软件开发套件 现在包含 3D 扫描功能。 这是一个惊艳的功能,支持开发人员和数字艺术家在实际物体中进行扫描,以用于其项目。 有一个用例是在实际物体中扫描并在 Unity 中使用。 这是一个由三部分组成的系列博文,将引导您完成整个过程。
在这第一步中,我将为您介绍如何使用 MeshLab 扫描物体并将其转化为 PLY 格式。 这个步骤用于为 Unity 等其他程序从扫描中获取颜色信息
下面是本系列的后续步骤。 这篇帖子包含前两步。 对于第三步和第四步,请在完成本帖中的步骤后点击以下链接
- 使用英特尔实感软件开发工具 3D 扫描代码示例进行扫描
- 将 OBJ 文件格式转化为 PLY 以便在 Blender 中编辑
- 将顶点颜色转化为 UV 贴图并编辑 3D 网格以减少 Blender 中的顶点/多边形数量
- 导入以便在 Unity 中使用
您需要完成:
- 使用软件开发套件,在英特尔酷睿第四代处理器或更高版本处理器上运行英特尔® 实感摄像头(软件开发套件免费)
- 通过英特尔实感技术扫描物体并转化为 PLY 文件(通过 MeshLab,免费)
- Blender(免费)
第1步(共 4 步):
使用英特尔® 实感软件开发套件进行扫描。
安装英特尔® 实感软件开发套件之后, 转至 Windows 中的常用工具列,搜索“实感”。 您将在列表中找到实感软件开发套件示例浏览器。 右击并选择“以管理员身份运行”
在示例浏览器中,您将看到“常见示例部分”。 这些是将在 F200 和 R200 摄像头中使用的示例。 找到名为“3D 扫描 (C++)”的示例。
3D 扫描的注意事项
- 示例用于追踪空间中的刚性 3D 物体,从而允许该物体在摄像头前旋转并进行跟踪,进而从多个面对其进行扫描
- 如果物体的一部分在旋转,另一部分保持不动,它会使跟踪算法发生混乱,导致扫描质量低下。也就是说,如果扫描一个人的头部,不要旋转颈部进行扫描,因为这样做会导致扫描质量低下。 您应该将其作为一个立体物,旋转对扫描可见的整个躯干。
- 您可以向前倾斜,向后倾斜,向左旋转,向右旋转和左右旋转。 通过练习,可以对一个物体进行 360 度扫描
- 在即使有灯光的区域进行扫描。 避免阴影,因为这些阴影或镜面反射会融入到您的 3D 纹理中
扫描步骤
- 选择“从示例浏览器运行”
- 将物体放在摄像头前,您将在扫描器视图中看到它。 拿着它不动,直到第二个窗口弹出。
- 第二个窗口弹出后,开始按照一个方向旋转物体,放慢速度然后调转方向,尝试绕着该物体旋转一圈。 转一圈,然后后倾和前倾,然后拿着不动。 如果您正在扫描人脸,请在最后的几秒钟向前方看,将目光放在摄像头上方,使您的眼睛处于静止状态
- 当扫描完成后,它将打开一个浏览器,允许您拖动和旋转图像。 图像将保存到您的“文档”文件夹中,名称为 3Dscan.obj
- 您可以尽可能多次地重新运行该示例,以获得满意的扫描结果,并为您的应用或游戏进行清理
第2步(共4步):转换为PLY格式
OBJ 格式是您从扫描中获得的默认格式。 您可以使用名为 MeshLab 的免费工具,转换为 PLY 格式。
- 下载并安装 MeshLab(免费)
- 从文件菜单中选择“导入”。 选择位于“文档”文件夹根目录的 3Dscan.obj 文件
- 导入后,您的物体可能在其旁边。 您可以在物体底部左击并向上拖动,旋转该物体并进行检查。 您应该看到带有颜色的网格。 颜色信息存储为“顶点颜色”,这意味着在扫描物体时,每个顶点都用 GRB 摄像头中的像素进行了染色。
- 从文件菜单中选择“导出网格为”
- 在对话框中,选择”Stanford Polygon“文件格式 (*.ply)
- 务必保存在您能找到的目录下。
现在即可移到 Blender 中清理网格并将顶点颜色转化为 UV 贴图。