• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

如何使用Blender和RealSense相机制作头部的3D模型

之前,我写过关于 实时 3D 扫描你周围的世界并在其中放置一个虚拟物体的文章;但是在本教程中,我想解释如何进行相反的操作,通过对自己进行 3D 扫描,然后将该扫描添加到虚拟世界中。

更具体地说,我们将:

  1. 使用实感摄像头和SDK扫描您的头部。

  2. 将 3D 文件从 OBJ 格式转换为 PLY 格式(用于在 blender 中编辑)。

  3. 将顶点颜色转换为 uv 纹理贴图。

  4. 编辑 3D 网格,使其具有较低的顶点和多边形数。

我们最终会得到一个 3D、彩色的头部网格,可以在 Unity 中使用。(在下一个教程中,我们将了解如何将其实际应用到 Unity 中,以及您可以在游戏中使用它。)

你会需要:

  • 英特尔实感摄像头(或集成实感摄像头的计算机)

  • 配备 Intel Core 4th gen 处理器(或更好)的计算机

  • realsense SDK(可免费下载

  • MeshLab(免费)

  • 搅拌机(免费)

扫描你的头

安装SDK后,转到 Charm Bar(在 Windows 8 中)或开始菜单(在 Windows 7 或 10 中)并搜索RealSense SDK Sample Browser在列表中找到它,右键单击它,然后选择Run as Administrator

如何使用Blender和RealSense相机制作头部的3D模型  第1张

在示例浏览器中,您将找到一个名为Common Samples的部分。这些示例适用于前置和后置 RealSense 摄像头。找到名为3D Scan (C++)的示例

如何使用Blender和RealSense相机制作头部的3D模型  第2张

如何扫描你的头部

  • 从示例浏览器的3D 扫描 (C++)部分中选择运行。

  • 把你的头放在相机前面,你会在扫描仪的视野中看到它。保持不动,直到弹出第二个窗口。

  • 一旦第二个窗口弹出,开始向一个方向(慢慢地)旋转,然后反向并尝试一直旋转。 

  • 一旦你完成了一个完整的循环,将头向后倾斜然后向前,然后保持不动。最后几秒。让你的眼睛在相机上方向前看,这样你的眼睛就可以固定在一个静止的位置。

  • 扫描完成后,将打开一个浏览器,允许您拖动和旋转模型。Documents该模型将以3Dscan.obj.

  • 您可以根据需要多次重新运行样本以获得满意的扫描结果。

扫描提示

  • 该样本旨在跟踪空间中的刚性 3D 物体,因为它在相机前旋转。这意味着您可以从多个侧面对其进行扫描。

  • 如果对象的一部分在旋转而另一部分静止,则会混淆跟踪算法,最终导致扫描失败。所以,在扫描头部时,不要只转动脖子来扫描;相反,旋转你的整个躯干。

  • 您可以向前倾斜、向后倾斜、向左旋转、向右旋转和转身。通过练习,可以从各个角度扫描对象。

  • 您应该在光线均匀的区域进行扫描。避免阴影和镜面反射,因为它们会被烘焙到您的 3D 纹理中。

转换为 PLY 格式

OBJ 格式是您从扫描中获得的默认格式。要在 Blender(以及后来的 Unity)中使用它,我们将使用名为MeshLab的免费工具将其转换为 PLY 格式。因此,如果您还没有,请下载、安装和运行 MeshLab 。

文件菜单中,选择导入找到3Dscan.obj您在上一节中创建的文件。

如何使用Blender和RealSense相机制作头部的3D模型  第3张

导入对象后,它可能在它的一边。您可以左键单击对象底部并向上拖动以旋转对象并检查它。 

您应该看到带有颜色纹理的网格。颜色信息存储为顶点颜色,这意味着每个顶点都使用 RGB 相机在扫描您的头部时获得的像素进行着色。 

如何使用Blender和RealSense相机制作头部的3D模型  第4张

单击文件 > 将网格导出为在出现的对话框中,Files of type下拉列表中选择Stanford Polygon File Format (*.ply) :

如何使用Blender和RealSense相机制作头部的3D模型  第5张

将生成的 PLY 保存在您以后可以找到的地方。

将顶点颜色转换为 UV 纹理贴图

这里的想法是将 3D 文件导入 Blender,制作一个副本,清理副本,并将顶点颜色映射为新副本版本的 UV 贴图。

下载、安装并运行 Blender(如果您还没有的话)。

将对象导入 Blender

在 Blender 中创建一个新项目,选择Import > Stanford (.ply),然后选择您刚刚从 MeshLab 导出的 PLY 文件:

如何使用Blender和RealSense相机制作头部的3D模型  第6张

导入后,你会看到纹理是不可见的:

如何使用Blender和RealSense相机制作头部的3D模型  第7张

但是,如果您切换到纹理视图,您将看到来自扫描的 RGB 颜色现在映射到纹理模式:

如何使用Blender和RealSense相机制作头部的3D模型  第8张使用此菜单切换到 纹理视图。

要正确查看颜色,请再次切换查看模式——这次切换到Material在右侧面板上,选择材质图标,然后创建一个新材质。 

在面板编辑器中,将Shading设置为Shadeless,然后在Options中,打开Vertex Color Paint这成功地将顶点颜色设置为对象的材质。

如何使用Blender和RealSense相机制作头部的3D模型  第9张

现在,这对我们来说还不是一个可行的网格。如果我们要在游戏中使用它,它充满了漏洞,很粗糙,而且多边形数量比我们希望的要高得多。

如何使用Blender和RealSense相机制作头部的3D模型  第10张

我们需要创建一个可以清理的网格版本,但是将这个顶点颜色的纹理映射为 UV 贴图。该版本是我们将引入 Unity 的版本。

创建网格的副本

选择对象 > 复制对象并按Enter不要移动鼠标

如何使用Blender和RealSense相机制作头部的3D模型  第11张

接下来,选择Object > Move to Layer,然后选择当前图层右侧的正方形(顶行左起第二个正方形)。

如何使用Blender和RealSense相机制作头部的3D模型  第12张

转到资产浏览器并重命名您的网格。命名一个Original Mesh和另一个Second Mesh这将帮助您区分它们。

减少重复的多边形数

选择第二个网格,选择相关层,然后将视图模式从Material切换到Solid

然后,从右侧面板中,单击看起来像扳手的图标以添加修饰符。我们将减少这个网格的多边形数量并清理它。

选择工具 > 重新网格化在此对话框中,将Oct Tree设置为介于7和之间8模式设置为平滑,然后打开平滑着色这将导致您丢失材质映射:

如何使用Blender和RealSense相机制作头部的3D模型  第13张

单击应用您现在有一个更清洁的 Mesh,您可以在其上应用顶点和 UV 贴图。

如何使用Blender和RealSense相机制作头部的3D模型  第14张

应用顶点和 UV 贴图

在第二个网格上进入编辑模式。单击选择 > 全选

如何使用Blender和RealSense相机制作头部的3D模型  第15张

创建一个新窗口并将其设置为UV/图像编辑器模式以查看 UV 贴图。

如何使用Blender和RealSense相机制作头部的3D模型  第16张

3D窗口中,选择Mesh > UV Unwrap > Smart UV Project

如何使用Blender和RealSense相机制作头部的3D模型  第17张

UV Map窗口中,选择New以创建纹理。关闭阿尔法将纹理命名为您希望为最终模型提供的名称。

切换到对象 模式。您将看到一个黑色模型和一个黑色 UV 贴图。没关系!

现在通过Shift选择这两个图层- 单击它们以使它们都可见。

如何使用Blender和RealSense相机制作头部的3D模型  第18张选择两个图层...如何使用Blender和RealSense相机制作头部的3D模型  第19张...您的视图窗格将如下所示。

Asset Browser中,选择 Original Mesh。单击相机图标。

Bake部分中,打开Selected to Active确保Bake to Vertex Color已关闭。

如何使用Blender和RealSense相机制作头部的3D模型  第20张

Scene部分,将Color Management设置为None

如何使用Blender和RealSense相机制作头部的3D模型  第21张

Asset菜单中,选择 Original Mesh。然后,按住Shift并选择第二个网格。(您必须按此顺序进行。)确保两个图层都可以通过眼睛和相机图标看到。

单击相机图标。烘焙部分中,单击烘焙

如何使用Blender和RealSense相机制作头部的3D模型  第22张

您现在应该有一个纹理映射。要看到这一点,请关闭第一层,因此您只能看到具有第二个网格的层。选择纹理视图,您将看到使用 UV 贴图纹理化的网格。 

您会注意到图像填充网格缺失区域的一些奇怪之处:

如何使用Blender和RealSense相机制作头部的3D模型  第23张

您可以切换到纹理绘制模式来清理它们。您现在还可以切换到雕刻模式以填充缺失的区域,以及清理或向网格添加特征。 

导出网格

清理完网格后,您可以准备导出它:

  1. 确保 UV 贴图与网格命名相同,并且与网格位于同一目录中。

  2. 转到UV Map 窗口,选择Image > Save As,然后导航到将保存网格的目录。

  3. 选择File > Export to .FBX,然后输入与 UV 贴图相同的名称。

如何使用Blender和RealSense相机制作头部的3D模型  第24张

你的模型就完成了!

结论

您已经在脑海中进行了扫描,减少了多边形数量,清理了模型,并将其导出为 3D 模型,以便在其他应用程序中使用。在以后的教程中,我们将把这个 3D 网格导入 Unity,并看看如何在游戏中使用它。


文章目录
  • 扫描你的头
    • 如何扫描你的头部
    • 扫描提示
  • 转换为 PLY 格式
  • 将顶点颜色转换为 UV 纹理贴图
    • 将对象导入 Blender
    • 创建网格的副本
    • 减少重复的多边形数
    • 应用顶点和 UV 贴图
    • 导出网格
  • 结论