大家好!我叫Alexey Gorinov,在我刚开始从事3D建模的职业生涯时,我曾思考过自己想走的方向以及理想的职业是什么,尤其是在我热爱玩电脑游戏、旅行并与人交流的情况下。
01 作者介绍
我尝试过许多不同的3D专业、开发流程以及大量的软件。最终,我选择了一个完美的专业,它让我能够做我喜欢的事情并赚到不错的钱——3D扫描艺术家。
3D扫描艺术家能够快速且高效地将几乎任何现实世界中的物体转移到虚拟世界中——从最小的物体(例如针脚)到建筑物和结构的外立面,这些物体可以用于广告、电脑游戏,甚至是动作电影(包括CGI特效)!听起来像是魔法,对吧?
此外,3D扫描艺术家这一职业在全球范围内受到各种公司的广泛需求。这不仅能让你总是有工作可做,还能让你在工作中享受旅行,兼顾娱乐与实用!
02 3D扫描的木材
在本文中,我将向你介绍如何在家通过摄影测量法(Photogrammetry)对桦木杆表面进行高质量的3D扫描。我将详细描述一个由八个阶段组成的逐步扫描过程。最终,我们将获得一个以OBJ格式存储的木柴3D模型,以及PNG格式的纹理贴图。
摄影测量法与其他3D扫描方法有本质的区别。要成功掌握这种方法,你需要的是一些实践技能,而不是理论知识。你不需要了解通常对3D艺术家必备的色彩和构图理论。
摄影测量法要求你了解摄影的基本原理、特殊的3D扫描过程,并对细节保持高度的专注。未来,我可能会写一篇独立的文章,帮助你拓展关于3D扫描物体的知识,并帮助你开始户外扫描,因为这是一个独立且庞大的话题。

03
选择扫描物体

通常来说,选择一个物体进行扫描并不困难:它可以是你眼前看到的任何物体,无论是在你家里还是街上。不要限制自己,扫描任何你觉得有趣或独特的物体。然而,也有一些限制条件。例如,使用摄影测量法扫描时,你将无法扫描以下物体:
透明物体;
缺乏细节的物体(例如,尘土颗粒);
涂有相同颜色的物体。
这些限制的核心在于摄影测量法的本质:通过一系列照片寻找并结合物体的细节。为了解决这些问题,通常会采用一些方法,例如为物体涂抹额外的哑光表面,或者对于玻璃物体,可以使用涂漆或上光处理,使其不再透明。

04
设备选择

“我不够富有,无法买便宜的东西”是一句广为人知的格言,其含义恰如其分地描述了选择和购买扫描设备时的情况。自然,人们总是希望节省金钱,简化某些流程,但在我们的案例中,这种做法100%会导致不必要的财务支出和宝贵时间的浪费。因此,我建议购买一套专门的初级3D扫描设备套件,之后你可以根据需要进行升级和补充,提高扫描的便捷性和质量,同时节省时间、金钱和精力。

那么,我们将需要以下初级设备套件:
1.相机
任何具有至少2400万像素传感器分辨率的相机都可以使用。我们不关心其他特性。
备注:个人而言,我使用的是索尼Alpha 7 III无反相机。要提升Alpha 7 III的性能,可以选择下一代型号——索尼Alpha 7RM V,其有效分辨率为6000万像素。分辨率的提高将使你在增加拍摄距离时仍能获得优质的图像。

2.镜头
相机镜头的选择通常对3D扫描的最终质量有着比相机本身更大的影响。在这种情况下,选择一款定焦镜头非常重要,因为在拍摄过程中,焦距不应更改,否则会导致照片之间出现大量不一致,从而破坏你所有的工作。因此,对于在家进行扫描,我们可以使用焦距较短的28-50mm镜头,这样也有助于节省闪光灯资源。

生活小技巧:在拍摄过程中,用胶带将镜头的调焦机制固定,这样你就不会不小心旋转镜头了。
建议:为了提高拍摄质量,我建议你购买一款定焦微距镜头,这样可以拍摄小物体。在拍摄大物体时,微距镜头也能让你从合适的近距离角度拍摄。相比之下,普通镜头的最短焦距大约为25-35厘米,这可能导致无法拍摄小物体的高质量照片。
3. 闪光灯
这很简单:你可以购买一款Godox Wistro AR400 400WS环形闪光灯,之后就不用再考虑更换它了。这款闪光灯非常适合3D扫描,因为它能够拍摄没有阴影的照片,这对我们来说非常重要。此外,它还轻便易用。

建议:购买额外的电池,这样你就不必在拍摄时停下来充电,而是可以像更换步枪弹夹一样,直接更换电池。
重要提示!你的相机可能没有外接闪光灯的端口。如果是这种情况,你将需要购买一个专用的相机“热靴”适配器或无线同步器。
4. 闪光灯的偏振滤镜
你需要两个滤镜,一个用于闪光灯,另一个用于相机。使用偏振滤镜是为了通过交叉偏振效果去除照片中的闪光反射。当拍摄物体(尤其是光滑的物体)时,改变拍摄角度会导致照片中不断变化和移动的反光,这将导致纹理错误,并影响最终模型的质量。

重要提示!在每次拍摄之前,你需要设置滤镜的正确旋转角度。为此,你可以走到镜子前,打开闪光灯的照明模式,然后旋转镜头上的滤镜,直到相机屏幕上的闪光灯消失或变得非常难以看到为止。

生活小技巧:Godox Wistro AR400 400WS并没有滤镜安装座(这种设计本身就不存在),所以你需要自己3D打印一个。网上有很多现成的安装座文件,你可以根据自己的需求选择一个。
05
设置正确的设备参数

在购买了初级设备套件后,在开始拍摄之前,你需要正确设置它们。重要提示!拍摄过程中绝不要更改相机设置!这会导致照片之间的不一致,最终导致扫描效果差。
1.ISO – 100。这个设置可以确保拍摄高质量的照片,避免不必要的噪点。

2.快门速度 – 1/200。这个快门速度值可以最小化外部光源对画面的影响,仅保留来自闪光灯的光线,同时消除拍摄过程中相机震动带来的不必要效果,保证照片不会出现模糊。

3.光圈 – F16。这个光圈设置是为了在画面中获得较大的景深。如果在照片中某些扫描对象的部分出现严重模糊,那么在合成3D扫描后,我们将得到不均匀、不连贯的物体边界,这是绝对不能接受的。

4.图像格式 – RAW。将格式设置为RAW将使我们能够在拍摄对象照片时获得更干净的高光效果,避免色彩噪点,同时避免在后续的图像转换过程中(例如转换为JPEG)出现质量损失。

5.闪光灯功率 – 1/4。如果扫描物体距离相机较近,这个闪光灯功率设置就足够了。
重要提示!在连续拍摄大量照片时,闪光灯可能会过热。不要担心,这是正常现象!暂停拍摄,等待闪光灯冷却后再继续。
6.对焦方式 – 连续对焦。这种对焦方式确保扫描对象始终处于焦点内,并且在需要时,你可以快速调整焦点位置。如果有几张未对焦的模糊照片,可能会破坏整个工作成果。因此,如果发现模糊的照片,必须删除或重新拍摄。
7.白平衡 – 恒定。调整白平衡非常重要,以确保照片中的色彩接近真实色调。后续我们将在Adobe Lightroom中进行进一步的调整。

06
准备拍摄地方和物体

现在所有设备都已设置好并准备就绪,你可以开始准备扫描的地点和物体。首先,确定一个适合的空间,在这个空间里你可以放置一个直径约为70-80厘米的圆形桌子,并且周围留有足够的空间供你方便移动。然后,在桌子上铺上任何哑光黑色材料,比如布料或毡子,这样可以去除闪光灯照射到扫描物体上产生的反射效果。

在你进行扫描的房间里,还需要移除直接的强光源,例如窗户的直射光,尽可能使其变得柔和。如果可能,理想的情况是一个黑暗的房间,配备软盒灯,提供柔和、漫射的光线。
现在是时候将我们的美丽扫描物体放到桌子上了!在我的例子中,物体将是一根桦木杆。我想强调的是,扫描物体可以是你任何想要的物体,所有我们已经完成和将要进行的步骤对于任何物体来说都是一样的。
为了进行扫描,我们需要拍摄物体的两组独立照片——一组拍摄顶部,另一组拍摄底部。之后,我们会将它们合成一个完整的扫描模型。
重要提示!在拍摄时,你需要保持扫描物体的形状不变,因此提前考虑如何定位和旋转物体,而不会损坏或变形其表面非常重要。例如,我的木材表面有树皮,按压时它很容易弯曲。此外,如果扫描物体上有一些部件在翻转时会移动或掉落,最好立即将其去除或通过某种方式固定。例如,在我的情况下,将物体垂直放置而不是水平放置会更有利,这样树皮在翻转时就不会弯曲。有时,如果物体的放置角度不合适,你需要更加创造性地处理这个问题。无论如何,请记住,准备工作花费更多时间总比事后修正错误要好。

07
拍摄

现在我们已经正确地定位了扫描物体,可以开始拍摄了。你需要细致地拍摄物体的整个表面,从所有可能的角度拍摄,不放过任何突出的细节和表面的凹凸。如果你遗漏了某些部分,那么在最好的情况下,遗漏的地方会被平滑网格覆盖,或者会在最终模型的几何形状中形成空隙。
我相信,通过一点练习,你会发展出适合自己的拍摄方法。等你熟练之后,你会发现类似的物体通常以类似的方式进行扫描,因此你很快就能显著提高扫描的速度。
我推荐使用我个人已经实践过的拍摄计划,我认为它适用于大多数情况:
1.尽可能靠近物体,直到焦距的极限。拍摄时尽量保持与物体表面的相同距离,并始终保持对焦。
2.固定好角度后,开始围绕物体拍摄,绕物体转一圈。每次转一圈时,保持平稳,采取小步移动,遵循简单的规则:“拍一张照片 – 走一步 – 改变位置”。记住,每一张新照片必须包含物体表面的一些新细节,否则这张照片就是多余的。

3.改变拍摄角度,重复前述步骤,围绕物体拍摄,形成一个类似半球的拍摄图像。
通过不断调整拍摄角度,围绕物体拍摄,逐步形成一个完整的视角覆盖。这种方式有助于确保物体的每个细节都被捕捉到,从而确保3D扫描的准确性。

重要提示!为了进行高质量的扫描,拍摄的图像需要确保大约50-60%的重叠,这样它们才能顺利地组合成一个完整的模型。一方面,你不应在拍摄图像时节省数量,因为如果以后需要更多的照片,可能没有机会再拍摄。另一方面,拍摄过多的照片只会增加拍摄和后期处理的时间,而不会提高扫描的质量。遗憾的是,并没有一个公式可以用来确定对任何物体进行高质量扫描所需的照片数量。但是不用担心:随着经验的积累,你会逐渐摸索出合适的数量。
4.如果你的物体表面平坦光滑,比如杯子或盘子,拍摄完顶部的照片后就可以结束了。然而,对于像桦木杆或其他不规则表面物体,你需要额外拍摄一些小的或复杂的表面细节。对于每个细节,拍摄几张照片并调整拍摄角度。

5. 小心地将物体翻转过来,并对物体的底部部分执行步骤1-4中描述的所有操作。
生活小技巧:在翻转物体之前,可以先拍一张自己的手掌照片,这样在拍摄完毕后,你就不会混淆第一半和第二半照片的位置。
重要提示!根据你扫描物体的大小和数量,拍摄过程可能会非常耗费体力和精力。你可能需要拍摄整整一天,甚至几天的时间。因此,我建议你保持良好的身体状态,否则你很快会感到疲惫,失去集中力,从而影响拍摄质量。
08
照片处理

如果你已经成功拍摄了足够数量的高质量照片,并且涵盖了物体表面所有的细节,那么后续处理这些照片将会相对简单。这时,你可以泡一杯你最喜欢的咖啡或茶,开始处理扫描物体的照片。
1. 将照片复制到工作站。
小贴士:组织两个独立的硬盘:一个用于存储完成的模型和生成的纹理,另一个用于存放照片和RealityCapture软件的缓存。构建3D扫描时,你将需要一个高性能且大容量的硬盘。NVME或SATA SSD硬盘是最佳选择。
2. 将物体的照片导入到专业的程序中,进行曝光调整、色彩校正,并将RAW格式的照片转换为JPEG格式。我推荐使用Adobe Lightroom程序。
3. 选择第一张照片。
为了提亮阴影,将“Shadows”滑块移动+100个单位;为了加深高光,将“Highlights”滑块移动-100个单位。调整白平衡时,移动“White Balance”滑块,直到照片的颜色尽可能接近物体的真实色彩。然后,选择所有照片并点击“Synchronize Settings”按钮,以将相同的设置应用到所有照片。

4.由于来自不同角度的照片可能拍摄于不同的距离,因此最终的照片可能会有不同的曝光效果(可能过暗或过曝)。为了提高扫描质量,我们需要对不同组照片的曝光进行调整。
选择几张照片,然后使用曝光滑块调整它们的亮度,确保这些照片的亮度一致,以便后续处理时达到更好的效果。


5.将所有照片导出到一个单独的文件夹中,使用JPEG格式并设置100%的压缩质量。
确保照片以高质量输出,以便在后续的3D建模过程中保留足够的细节和清晰度。
09
3D模型重建

照片已经处理好,可以开始组装物体的3D模型了。我建议使用免费的RealityCapture程序进行组装。关于哪款软件最适合这个目的,存在很多不同的看法,但大多数专业人士仍然偏爱RealityCapture。实际上,RealityCapture已经成为行业标准,得到了大量参考资料的支持,使用起来简便,并且有广泛的社区支持。
小贴士:你可以在YouTube上找到RealityCapture创作者提供的优秀教程系列,它们将帮助你学习这个程序的所有功能。
在本文中,我不会浪费你太多时间去讲解RealityCapture的所有功能,而是简要描述必要的操作并提供一些小技巧。
1.为了将物体的两部分合并,我们需要在照片上创建遮罩,避免干扰画面中的环境。
将第一部分的照片拖入程序,开始在草图模式下进行对齐。可能并不是所有的照片都会合并成一个组件,这取决于你拍摄的准确程度。通过积累经验,你会逐渐明白如何做得更好。

2.接下来,从创建的点云中需要在预览模式下生成网格。
在生成的模型上,使用套索工具和其他选择工具,移除所有不必要的部分,只保留物体模型。在我的例子中,就是移除桌子。然后,点击导出面板上的“深度与遮罩”按钮,选择包含我们照片的文件夹来导出遮罩。在导出设置窗口中,选择禁用深度图的导出,因为我们不需要它。之后,程序将根据模型的预览,生成照片的遮罩。

3.对物体的第二部分照片重复步骤1和步骤2。
4.在RealityCapture中创建一个新项目,并导入两部分的照片。
选择所有生成的遮罩,并将它们一起拖入程序中。这样,程序会应用这些遮罩,并在计算过程中排除环境部分,这是我们所需要的。点击“Align”按钮,开始最终的对齐,并等待结果。根据照片的数量和工作站的性能,执行此操作以及接下来的步骤可能需要的时间不同——从几分钟到几天不等,因此请耐心等待。

5.在创建点云后,编辑重建区域,确保模型的所有部分都在区域内。
有时,程序可能会误认为某些小部分不是模型的一部分,错误地设置了区域,导致部分被切割掉。这样的话,你就不得不重新计算或手动修正,这显然会浪费不必要的时间。将重建区域的滑块移动,确保模型完全位于重建区域内的立方体内。
6.接下来,使用“High Detail”按钮创建网格。
网格可能非常密集,包含超过1亿个多边形,因此我们需要对其进行简化。点击“Simplify Tool”按钮,将网格简化到2000万至4000万个多边形。有时,由于照片质量不佳或缺少必要的照片,网格可能会变得过于杂乱不堪,导致无法用作法线贴图的高细节模型。在这种情况下,需要进一步精炼网格,例如使用ZBrush中的纹理和光滑刷进行处理,然后将其重新导入。创建完成网格后,生成扫描路径并为其添加纹理。

7.将生成的模型处理成适合游戏使用的状态。
根据项目需求,你可能需要在专用程序中进行重新拓扑,例如使用ZBrush中的“Decimation Master”工具,或者使用Topogun程序手动进行拓扑。完成重新拓扑后,需要将模型导入到RizomUV程序中进行UV展开。
8.将得到的模型导入RealityCapture,并使用第6步中获得的模型以8K分辨率烘焙Base Color和Normal贴图。
最终,我们得到了一个扫描的模型,可以用于游戏、电影,或者在市场上出售。如果你只打算将模型用于渲染,那么步骤7和8是可以跳过的。这次我就是这样做的。
10
贴图修复

修复纹理并提高其质量。
在前面中获得的3D模型可能会存在一些需要修正的错误,这是正常现象,因为制作完美清洁的3D扫描非常困难,需要大量的经验和训练。
要修正纹理并提高3D模型的质量,可以使用 Adobe Substance 3D Painter 来修复错误,使用 Stamp tool 工具修补纹理,并创建粗糙度图(roughness map)。然后,使用 Topaz Gigapixel AI 来提升修正后的 Base Color 纹理的质量。

11
结论

摄影测量法是一种独特的3D建模方式,对于电影和游戏制作人来说,如果需要超现实主义质量,它是不可或缺的。这项技术具有许多优点,因此它一直有着广泛的需求。
我希望在读完这篇文章后,曾经对3D扫描持怀疑态度的新手们会对尝试这种方法感到兴奋。同时,我也希望有经验的3D扫描艺术家能从中学到一些新东西,帮助他们进一步发展。
声明:本文中的所有图片视频版权归原作者所有,仅供分享学习交流,不作商业用途,侵删。

发表评论 取消回复