照相建模,5,000+张照片还原实景大场面!

作者:金力 2021-02-04
以下文章来源于NExT Studios ,作者金力

NExT,做纯粹的好游戏!

2019年,举世闻名的巴黎圣母院被烧毁。幸运的是,早在几年前已有学者对整个巴黎圣母院的外部建筑结构和内部角落如屋顶、拱顶、楼梯间等都进行了完整扫描和建模,对后续重建工作起到了很大帮助。

随着技术发展,Photogrammetry(照相建模)被大量写实类游戏应用于人脸、物体、地形扫描,如《战地》、《星战》、《FIFA》、《刺客信条》,以及NExT 在研AA游戏《重生边缘》,不仅提高了游戏的真实度,也极大缩短了开发周期。

本文是Photogrammetry生产管线上篇,让读者对照片采集、后期数据处理、还原三维模型的一系列工作流和解决方案有整体了解。下篇将着重介绍数据处理中运用到的Delight去光照工具。

作者金力,NExT高级技术美术,一枚养了4只猫咪并为其竭诚服务的新时代猫奴,崇尚猫主们独立而慵懒,高傲且与世无争的生活方式(#^.^#)。







Photogrammetry是一种通过对一系列照片里的图像信息进行对比、测量,并把这些信息翻译成模型、贴图等有用信息的技术。它的输入是一系列照片,输出是点云信息、3D模型信息和贴图信息。简而言之使用这个技术,我们可以通过对物体拍摄各个角度的照片,并把这些照片导入软件,快速生成还原模型的外貌和颜色。

首先我们看一下这两张照片,你能告诉我哪张是真实拍摄的照片,哪张是我在3D软件里的截图吗?的确从肉眼上很难分清,这也是Photogrammetry的优点——还原真实性。



哪张是真实的照片?快来点一点( ╯□╰ )

下图模型,是我用手机在办公桌前拍摄的,一共拍摄了27张照片,并把它导入软件生成,整个过程不超过15分钟。


看一下它在3D空间里的样子。



除游戏以外,Photogrammetry在其他领域也有广泛的用武之地,比如对古生物化石和古文物的数字化保存,对地貌的三维重建,甚至可以通过显微镜制作微生物的三维模型,可以说只要有照片能拍摄到的它都能使用。





让我们先来看下Photogrammetry和普通美术管线的流程:

Photogrammetry生产管线


普通美术管线


相比普通美术管线,Photogrammetry的优点是:

快速生成高模;

更精准的外形;

更真实的颜色还原。

就好比下面照片里的头骨,美术可能需要一周或更久对它进行高模的雕琢,以及颜色贴图的制作,而使用Photogrammetry可以在短短数小时完成上述工作。


但它也有缺点:

不适合制作非写实素材,一定要有可拍摄物体;

不适合表面光泽度较高的物体,如金属、玻璃;

依赖良好的光照环境:棚拍时,需对物体进行打光,确保每个面都有良好的照明。外拍时,尽量选择阴天,用来避免比较强烈的光影对比和阴影;



相机推荐采用全画幅单反相机,方便后期校色、拥有更好的EV控制、更高的成像质量,镜头采用可变焦镜头,外拍时备足记忆卡和电池,同时还要准备好三脚架、色卡(含18灰卡)、卷尺、反光板、大疆无人机、偏振镜等。






在拍摄前首先把相机调整到M档,固定白平衡,然后输出格式为Raw格式。

选定拍摄目标后使用色卡的18灰卡面确定相机在当前环境下的曝光,分别调整ISO、快门速度以及光圈,让相机拥有一个合理的曝光范围。在拍摄物体前,需要先拍摄色卡。


对物体进行拍摄时,要保持刚才调整好的相机参数,中途不能有任何变化,每一张照片需要保持与前一张照片有20%到30%的重叠区域。采用单点对焦、自动对焦,以拍摄物为中心,大约每15度就需要拍摄一组照片。拍摄时,可以采取蹲姿、立姿、俯拍,确保每个角度的照片都有覆盖到。最后再检查一下有没有跑焦或者模糊的照片,进行补拍。

下面三维软件里的每个小点,就代表了一个相机的机位,可以看出我们对它进行了360度的拍摄,每个角度都有覆盖到。


而对于一些比较高大的建筑,像下面右图在佘山上的教堂,我们用无人机对它拍摄了将近2,000多张各个角度的照片,来对它进行三维的重建。


为了拍摄足够清晰并且有连续性的照片,建议使用支持Raw档连拍,挂可换相机的大疆“悟”这样的专业无人机。另外,因为无人机的ssd容量有限,通常还需要准备笔记本和移动硬盘,以便于存储数据。


无人机操作不慎很容易“炸机”,实际飞行前需仔细阅读说明书,并在安全的地方操练。不仅要尽量避免发生飞行事故,在实际拍摄时,受制于电池、飞行时间有限,熟练的飞行技术也有助于尽快飞到合适的拍摄位置,保持合适的拍摄距离,减少调整时间。在出发前,还要检查禁飞区、事先规划好飞行路线,对建筑物通常需要完整的环绕飞行。

无人机与用相机拍摄的目的相同,但实际情况稍有不同。无人机飞行范围较远,拍摄过程中光照环境差异较大,因此如果用手动模式拍摄,需不停调整曝光。经过实践,边控制飞行边调拍摄参数比较困难,一般自动模式反而效果较好。无人机拍摄距离越远,拍摄到的表面的特征信息越少,拍摄时要尽量靠近。但实际还是会比拿相机拍摄要远,因此较好还原模型所需的照片要多得多。


因为相机的出厂商和硬件都是不一样的,拍出来的照片多少会有一点偏色。拍摄环境对物体的颜色有很大影响,为了还原真实性,所以要对它进行校色。将之前拍摄的色卡的照片,分别对齐颜色、白平衡、曝光三项进行校准,生成颜色配置文件,并使用这个文件对一系列照片进行批量校色。



我们主要使用的软件是RealityCapture和PhotoScan,它们的输入是刚才校色完的照片,输出是高模、顶点色和颜色贴图。对高模我们有一个多边形数量的限制,大约不能超过3,000万,如果太高的话,我们可能在之后的制作中会遇到麻烦。



高模生成结束后,由于它的面数非常之高,复杂度可能从数百万到上千万面,可以看出左边这张图,它的多边形已经密到看不清了。需要首先对它进行面数的优化,我们在ZBrush里对这个石雕进行优化,从800万面大约减到了1.4万面,然后同时可以用ZRemesher对拓扑进行一次优化。


优化完这个模型,把它导入Maya或者Max进行拓扑的修正和UV的展开,为之后的贴纸烘焙做好工作。


之前我们导出的高模包含了其模型本身和颜色贴图信息,我们需要把这些信息烘焙到我们刚才制作好的低模上,我们一般的烘焙的贴图有:Base Color 、Tangent Space Normal和AO贴图。这三张贴图,我们在平时的PBR游戏贴图制作的流程中是经常用到的,同时我们也可以选取烘焙Height Map,像Bent Normal和W Normal。

这些贴图在之后Delight去光照的流程里也会有用到,推荐烘焙的软件有xNormal和Substance Designer。

除此之外,我们PBR管线还需要Roughness和Metallic这两张至关重要的贴图。由于我们拍摄的模型都是相对粗糙的非金属模型,那我们可以用Base Color和Normal Map大致推算出它的Roughness。


并且把Metallic和Roughness以及AO贴图,分别存到一张贴图的RGB三个通道中,这样可以有效地减少之后在材质里对贴图数量的应用。


最后把低模和烘焙好的贴图一起导入引擎,并把贴图连到相应的材质通道里赋予模型。这个模型就是我们在UE4里的截图。


这是一些我们用3D扫描还原到引擎的模型,它们包含了像航拍建筑、古建筑、石雕、树木、石头、砖墙,甚至一些人为去除高光的车辆模型。











分享我们的一次拍摄和制作经历,实际上当时碰到了非常多问题。


我们的目标是拍摄一个废弃工厂,事先在网上寻找合适目标,最终选取了一个即将要拆除的工厂。我们在地图上大致找了一些参考,并制定了一些简单的拍摄计划,但由于这个工厂平时进不去,我们也不知道进去到底能不能取到想要的素材,最终在有限的经费和协商下,争取进去拍摄一天。








按照事先的分配,我们对工厂的各个角落进行取材,并收集到了大约5,000多张照片,从中筛选出69个可以还原的模型。

但我们只有四个美术,由于年底大家手头还有其他的活儿,每人每周大概只能工作三到五个小时,而我们的Deadline是2个月后。

困扰我们的另一个问题是,由于事先没有实地考察,有一些要规划拍摄的东西和实际上看到的有较大出入,有些可能因为人走不上去,没法取景。这就让我们反思了一下关卡的制作流程。

普通来说,一个关卡制作周期可以分为从原画设计,然后白模制作、制作游戏模型,到把这些游戏模型替换白盒,基本上要做的东西都是事先规划好,然后模型也是人工制作的。


对我们来说即使制作了白盒模型,实地拍摄时,我们不一定可以取材到合适的模型去替换。我们所拥有的是大量扫描数据,这让我们重新制定了计划,从现有的模型中选择合适的来拼接关卡。


这就是从5,000张照片里我们筛选出的69个物件,以我们的预算和人力,根本不可能把这些物件用我刚才介绍的流程一一做好,并且导入引擎,交给关卡设计师。怎么办呢?






我们重新定义了美术制作管线,必须要用自动化处理大部分的模型,我把这部分模型定义为Placeholder,可以作为预览或远景。首先交给关卡设计师进行关卡的摆放,在有限的人力下,合理地选择进出的模型进行人工优化。



这里我们引入了Houdini的自动管线,对生产高模进行自动减面检面、自动拓扑、自动UV展开,并且烘焙贴图,甚至自动Lod的制作。


不得不说自动处理的模型和人工制作的模型还是有较大差距的。它缺陷主要是,它的拓扑和UV不是很理想,但也有一部分模型,由于比较简单,它自动生成的UV和拓扑还是可以的,就好比这个石桩。



之前说的Roughness贴图和合并贴图,我们使用了Substance Designer对它们进行了批量化处理。

但这样就可以了吗?不,由于外拍时受天气的影响,照片上多少会有一些阴影,或者说在一些背光的面会比较暗,我们的Base color不可以包含阴影,所以我们同时开发了Delight(去光照)工具。

Delight在自动化管线里加入了对Base Color的去阴影处理。左边这张图就是在我们去阴影之前,可以看到它有非常强烈的阴影,右边这张是去完阴影后。


最终我们在三天时间内,使用自动化生产流程完成了所有的Placeholder模型制作,并且交给美术关卡进行摆放,然后我们把足够的时间,留给后续人工处理一些近处的模型。


以下是在引擎里截的一些截图。





我们对Base Color进行Delight的处理,可以给它加入一些时间上的变化,也就是光照的变化。


以下是我们此次拍摄的废弃工厂建模。




最新评论
暂无评论
参与评论