使用Meshroom将真实对象插入Unity

图片


本文将向您展示如何使用摄影测量法拍摄照片,以及如何使用Meshroom将真实世界的对象插入Unity项目。



在3D模型的上下文中,摄影测量法是从扫描的对象创建3D模型的过程。



需要逼真的3D模型来满足您的游戏想法,但预算有限?想要创建一个超现实的游戏环境?如果是这样,请继续阅读!



使用摄影测量法,我们获取输入数据(即照片),并将其通过处理这些数据的管道或方法集。来自这些过程的数据或输出信息用于创建完成的3D模型。





在本教程中,我们将使用几张龙雕像的照片来创建详细的3D模型,在Blender中对其进行清理,然后将结果导入到一个维京村庄的黑暗阴暗的场景中。



您还将学习:



  • 选择一个好的拍摄主题。
  • 拍摄合适的照片。
  • 决定何时何地拍照。
  • 删除不良照片。
  • 使用Meshroom创建3D扫描。
  • 将模型导入Blender以进行清洁和修饰。
  • 减少多边形的数量。
  • 准备3D模型并将其导入Unity。






入门



注意:需要一台功能强大的计算机来在合理的时间内执行Meshroom照片扫描。


下载项目资料接下来,将zip文件解压缩到您方便的位置。



归档文件包含StarterFinal项目文件,我们将在以后提供。



注意:您将需要下载另一个文件,但有关更多信息,请参见下文。


为了创建良好的照片扫描,您需要从多个角度拍摄模型。在本教程中,我们将拥有所有必要的照片。



在拍摄这些照片之前,重要的是要学习一些有关如何自己拍摄照片的有用信息。



寻找合适的拍摄对象



当然,您想要拍摄与游戏环境或想法相匹配的对象。此外,还有一些条件可以简化对象的照片扫描:



  • 平底。
  • 颜色或阴影有足够的对比度。
  • 不要太暗,否则将很难看到细节。
  • 不能太大,否则将很难在物体周围走动并从不同角度射击。


还值得考虑创建难以建模的对象的照片扫描。例如,由于难以创建有机材料,因此很难建模自然对象。Unity Asset Store



Tales工厂的宝石就是一个很好的例子





什么时候拍照



对于照片,某些条件和一天中的特定时间可以创建高质量的照片扫描。



如果您有室内工作室和照明设备,则可以自己模拟这些条件。如果没有,那么你必须在户外工作。



在户外工作时,请记住以下几点:



  • 在日光下拍照。
  • 多云的天空是最好的。云将灯光散射,从而使整个模型中的光线分布更加均匀。
  • 干燥度好,湿度差!在潮湿的条件下,您的成品可能会得到更多的反射。在某些情况下,3D模型甚至会有明亮的反射,破坏了真实感。


选择适合各种潜在条件的中性外观模型。这将允许您根据游戏中的环境条件应用效果。



游戏正在下雨吗?让我们勾勒出一个着色器,它将添加光泽的湿效果。游戏发生在世界末日后的世界,那里一切都破旧不堪?让我们添加老化或腐蚀的影响。



拍照



下载将在本教程中使用的照片集。由于尺寸较大,因此未包含在上面的链接中。要下载收藏,请单击此链接:



下载龙雕塑的照片(zip文件,695 MB)



接下来,将zip文件解压缩到方便的位置并打开文件夹。您将看到从不同角度和高度拍摄的大约100张龙雕塑照片。





这是拍摄照片时应努力的目标。覆盖不同角度和高度的360度照片可确保捕获您所需的所有细节。



拍摄时,在拍摄对象周围移动以获取不同角度的视野。尝试尽可能少地移动并近距离或远一点地拍照。旨在获得特写细节和展示整个模型的照片。



拍摄时请勿移动或旋转模型,因为这会混淆某些软件包。在对象周围移动而不移动它。



相机设定



要获得外观统一的照片,请将相机切换为手动或专业模式大多数智能手机相机都允许您切换到此模式,而DSLR相机始终具有手动或M模式



  • 首先将ISO设置Fixed此设置将改变数码相机传感器对光的敏感度。值越高,在黑暗中拍摄照片越容易,但它们的噪点越多。在良好的室外照明条件下,通常可以将其设置为100或200。始终为照片扫描的图像选择一个固定值。
  • 如果您不熟悉摄影,请使用“固定快门”或“固定光圈”模式。这些有时称为优先模式这有助于固定其中一个参数,使相机可以控制其他参数以保持均匀的曝光。这样做也是为了获得光线充足的照片。
  • 拍照时,应该始终保持对焦。避免图像模糊。
  • 始终以相同的方向,风景或肖像拍照。




对于这种情况下的午间和阴天照明,固定ISO为200



使用Meshroom创建照片扫描



Meshroom是一种开源摄影测量应用程序,可用于从照片创建3D模型。我们将使用它来创建龙雕塑的光敏照片。



从此处下载最新版本并安装。需要Windows或Linux才能运行该软件。



启动Meshroom后,您将看到主界面。在此模式下,您可以执行创建照片扫描所需的一切。



这是主界面各部分的简短说明:





  1. 需要以3D方式重新创建的照片被拖到此处。
  2. 图像查看器只是单个照片的预览窗口。
  3. 3D Viewer . , , , .
  4. Graph Editor , 3D. (, Node). . , .
  5. Node Graph Editor. , .


将照片导入网格室



转到下载的龙雕塑照片。然后将它们拖到“ Meshroom图像”窗口中



照片在“图像”窗口中以文件名的顺序显示





下一步,单击文件►另存为…,在磁盘上选择一个新文件夹位置,然后将项目另存为Dragon.mg





接下来,关闭所有不必要的应用程序以准备Meshroom的重新创建过程。如果计算机资源不足,将无法开始扫描。



开始网状室娱乐过程



此时,您就可以开始重新创建了。单击开始按钮以开始该过程。





在过程运行期间,您可以在Graph Editor窗口中跟踪其进度注意每个节点上的彩色进度条。您计算机的处理器最有可能在15-30分钟内完成处理,具体取决于计算机的速度。





完成后,结果扫描将显示在3D Viewer窗口中





现在,按住鼠标左键并拖动光标以旋转模型,或者按住鼠标中键并拖动光标以在3D视图中平移相机。享受您的处理器帮助创建的3D模型!





接下来,打开保存Meshroom项目文件的文件夹。在其中,您将找到MeshroomCache文件夹在此输出扫描对象的文件。





导入搅拌机



接下来,我们将使用流行的3D图形应用程序导入3D龙模型的扫描,并进行清理以准备将其导入Unity。



如果您没有Blender 2.80或更高版本,请下载并安装它。您可以在此处下载



安装完成后,启动Blender。



如果您是Blender的新手,那就什么都不用担心,放松一下!虽然其界面和控件可能令人困惑,但在这里您会发现许多对我们有用的键盘快捷键和屏幕截图。



打开Blender启动屏幕后,单击“新建文件”下的常规。默认情况下,新文件包含一个多维数据集对象。单击一个多维数据集以将其选中,然后按Delete摆脱它。现在,我们有一个自由空间可以使用:





下一步,单击文件►导入►Wavefront(.obj)导航到“ MeshroomCache”文件夹,其中“ Meshroom”保存了扫描的对象模型文件。在此文件夹中,在MeshroomCache /纹理/ GUID子文件夹中找到模型GUID是扫描完成后分配了随机标识符的文件夹的名称。



然后双击TextureMesh.obj将扫描导入到Blender中。





由于照片扫描的模型很大,因此导入可能需要很长时间。





让我们首先了解一下照片扫描的龙在默认情况下是什么样子。单击Blender主窗口中的视口着色”按钮以对该窗口启用完全着色和纹理化。





然后按住Shift +鼠标中键拖动窗口,以使主要的龙模型位于屏幕中间。按住鼠标中键并拖动光标以旋转窗口。您可以使用鼠标滚轮放大和缩小。



查看默认扫描的效果如何。很好!





搅拌器修复



该模型很复杂,并且有很多顶点和细节。现在,我们将使用Blender的快速有效的Decimate修改器来减少多边形数量



如果您要创建需要更多优化的商业发行游戏,那么定性减少多边形数量可能需要更多时间。但是到目前为止,我们对Decimate非常满意。



Blender编辑器的“场景集合”面板中,单击TexturedMesh►修改器►添加修改器





列表中选择“抽取”





出现一个小的自定义字段,其中包含Decimate选项。



选择折叠比率0.1因子2.0然后单击“应用”



这将减少整个模型的细节,并将顶点数量减少大约10倍!您不会注意到很多细节上的损失,但是Unity分析器和游戏速度会感谢您!



摆脱草



现在我们需要解决最明显的问题。



如果您打算创建一个场景,其中巨龙在操场中间或绿草如茵的草坪上,那么您已经准备就绪。但是我们将把这条龙放在维京村的周围,所以这种草不适合我们。



现在,让我们集中讨论从网格中删除草。



在Blender中,从“对象模式”切换到“编辑模式”为此,您可以使用UI或按键盘上的Tab键。





请注意窗口中的更改:现在,在此处显示了龙的顶点,并且它们都已突出显示。





选择顶点



接下来,我们将仅选择与龙群周围的草相关的那些顶点,然后将其删除。



请注意,下一步将需要很大的耐心。



首先,选择工具选择套索,按L的Shift +空格键。 (同时按ShiftSpace,然后按L)。



或使用UI面板选择“选择套索”工具





接下来,结合使用鼠标中键和拖动进行旋转,鼠标中键+ Shift并拖动进行全景移动,以从各个角度检查模型。



套索从各个角度仔细地挑选了龙根周围的草顶。在每个选择之间按Shift键可将新的可选区域添加到已选择的顶点。



这是说明此过程的GIF:





有时,您将需要旋转视口以选择位于草网格体边缘后面的顶点。



如果您选择了一些不想删除的顶点,请分别使用Shift +鼠标左键单击它们以将其从选定的顶点中删除。



选中所有草和周围的顶点后,按Delete(删除)►Vertices(顶点)将其删除。







放大,缩小和旋转视口时,请仔细查看其余的网格。对所有错过的顶点重复选择和删除过程。



完成后,您将看到类似的恐怖图片:





封闭网格的底部



现在,如果您还没有进入编辑模式,请进入它。切换模式是通过按Tab键完成的然后使用“选择”工具并按住Shift键选择龙网顶点的整个底部边框这需要耐心。





或者,您可以为此使用“选择Lasoo”工具





选择顶点后,单击“顶点平滑顶点”





这将使我们选择的顶点环更加平滑。



现在,通过按Shift +空格键,选择“ 3D光标”工具,然后按鼠标左键将其定位在所选底部边框中最低顶点的位置。要确定最低顶点,可以平移并旋转视口以从侧面查看龙。 然后按键(“ Point”)选择“ Pivot Point”,然后选择“ 3D Cursor”3D光标的位置用作参考点。 然后按S,Z,0,Enter







(这是零,不是O)。这一系列的命令会将所有选定的顶点缩放到与我们使用3D光标创建的锚点相同的高度。



现在我们得到这样的东西:





最后,单击“顶点”►“来自顶点的新边/面”



通过覆盖所有选定的顶点并创建新的面,这将为龙创建新的基础。







动龙



然后通过按Tab键返回到“对象模式”,然后选择TexturedMesh对象使用工具Move,按Shift + Space G移至龙场景起点坐标按下Shift +空格键R来应用“旋转”工具,并将其旋转到所需位置。 现在,选择3D光标工具,然后在龙背的中间位置单击。F3,输入Set Origin,然后按Enter接下来,出现的命令列表中选择“ Origin to 3D Cursor







黄点出现在3D光标的中间,指示模型的新起点。





我们准备导出模型!



接下来,单击文件►导出►Wavefront(.obj)



选择路径模式►复制,并确保在导出设置中选择了仅选择在方便的位置将文件另存为Dragon.obj





复制出口路径模式确保纹理复制,并从同一文件夹中的obj模型中引用。这样可以避免导入Unity时纹理丢失的问题。



将一切转移到Unity



现在,让我们在Unity中打开Starter项目,然后打开Assets / RW / Scenes / PhotoscanDragon场景在村庄的石头之间找到一个空的基座。这是我们将安装光罐龙模型的地方。





现在,让我们将导出的模型及其关联的导出文件拖到Assets / RW / Models / Dragon项目文件夹中





然后,我们使用Unity Hierarchy窗口找到GameObject FocalPointAssets / RW / Models / Dragon / Dragon.obj模型拖到场景中,并使其成为GameObject FocalPoint的子代





现在,让我们如下更改Dragon对象的Transform组件的位置和旋转



  • 位置:(X:-33.32,Y:0.53,Z:5.08)

  • 旋转度:(X:-2.229,Y:90,Z:-0.6)




注意:根据在Blender中设置锚点的位置,您的位置和旋转可能会略有不同。


现在点击播放,欣赏我们自己的照片扫描龙,它取自现实世界,并以全3D方式重新创建。





接下来要去哪里?



可以从本文开头的链接下载完成的项目。



我们采取了许多步骤到达那里,了解摄影测量技术,在Blender中编辑3D网格,顶点操纵,并将整个模型引入Unity!



我要感谢Unity资产商店的The Tales Factory,让我可以在Dragon Viking Village场景中使用Photoscanned MountainsRocks PBR资产。



我建议检查一下他们出色的照片扫描资产



下一步由您决定。您想重新创建什么并将其集成到Unity项目中?以下是可帮助您进一步开展工作的资源和其他阅读材料:






All Articles