【转载】摄影制图法工作流程指南
手机游戏引擎手游引擎Unity3D技术 1016 0
实名

通过了实名认证的内容创造者

发布于 2019-11-19 15:05:26

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 kanisen 于 2019-11-19 15:05 编辑



转载说明:Unity官方视频的高品质资源的制作方法,概括一下就是用照片制作模型贴图。5篇帖子合一帖,内容略长




在《ADAM》、《死者之书》中都运用到摄影制图法,通过使用摄影制图法可以捕捉现实世界中的对象和材质,利用有限时间和成本创作出极高质量的资产。

为了让更多开发者和游戏工作室能掌握和运用到摄影制图法,Unity编写了《摄影制图法工作流程》作为工作指南。

7d8a9e5d-d72b-4af3-8c0c-9576f0204137_image.png




摄影制图法工作流程分为三大阶段:


  • 准备阶段:摄影制图法概述、需要使用到的硬件和软件设备,采集阶段前需要考虑的问题。
  • 采集阶段:资产的选择与拍摄、如何采集表面、细节与纹理、各种对象、采集反射反照率。
  • 处理过程:图像处理、重构创建模型、烘培网格、烘培纹理、创建游戏资产。

本文我们将介绍第一阶段:准备阶段。

摄影制图法概述

1、什么是摄影制图法

摄影制图法是使用真实世界原始对象的多张照片创作数字资产的过程。摄影制图法有很多种不同的用途,其工作流程也会因使用场景的不同而变化。

本指南中将列出需要使用的一些硬件设备和软件,这些工具可以平衡效率、成本和质量之间的比重。

2、摄影制图法工作流程概述

本摄影制图法工作流程将分为二个主要部分:


  • 采集:拍摄多张包含指定对象所有部分的照片。
  • 处理:从这些照片生成网格和纹理数据的过程。

采集

摄影制图法的第一步是从不同角度拍摄指定对象的多张照片。此外还需要收集额外数据用于参考、确定缩放单位以及拥有正确曝光度的照片。

处理

首先需要校准照片调节白平衡,然后将照片发送给可以进行重构出3D模型的应用程序。重构程序会对比照片中的形状,从而生成高分辨率3D网格。照片中包含的颜色之后会用于对网格的顶点进行着色,或是将其应用于网格表面的纹理上。



重构软件或许会生成面片数很高的网格。这类网格并不适用于实时引擎,因此我们也需要生成较低分辨率的网格。我们可以通过烘焙工具为低分辨率的网格生成法线贴图,以此保留高分辨率网格的细节。烘焙工具会把高分辨率网格中的高频信息传递给低分辨率网格的法线贴图纹理。

然后创建用于烘焙过程中的低分辨率网格:我们将会从重构软件中导出一个中等到低分辨率的网格,然后在3D工具软件中进行修改,最后将其提供给烘焙工具作为烘焙的目标网格进行重拓扑和UV布局。

接着我们会使用烘焙工具生成所需的纹理。

然后,我们需要移除纹理上的光照。这是因为纹理是由真实世界图片生成的,这会不可避免地带有光照信息和阴影。为了能够拥有可以在任意光照条件下都可以使用的材质,我们需要移除已经被烘焙到纹理上的光照信息,光照移除步骤也被称为de-lighting去除光照。有时候,这一步也会使纹理可以被平铺。

最后,用于烘焙的低分辨率网格在3D软件中会转换为能在游戏中使用的网格,这个网格带有正确的方向、轴心和UV集。



制作时间

摄影制图法是创作高分辨率网格和纹理非常高效的方法,但它不会给准备游戏网格的其它步骤带来帮助,例如:重新拓扑和UV布局。

与传统3D资产创作流程相比,摄影制图法是否节省时间取决于制作对象的复杂度。在制作中使用摄影制图法并不是个简单的任务,因为摄影制图法会根据对象复杂度和重拓扑时间而变化。这个方法通常会比传统方法更好,但是很难量化它所节省下的时间。

下面是使用摄影制图法粗略估计的能够节省的时间。



软件与设备

1、设备

下面推荐设备列表,可以采集优质数据用来实现高质量摄影制图。



下面是上图中对应编号的设备。

1.相机:佳能6D

任何相机都可用于摄影制图,即使是手机摄像头也可以。为了取得最佳质量,最好使用可以拍摄高分辨率清晰图像的相机,高分辨率意味着在构建过程中所需的照片量较少。我们建议使用全画幅相机。

2.镜头:Sigma 24-70 mm f/2.8 EX-DG HSM

在自然环境中,某些对象可能因为距离太远或太近而无法拍摄。使用可变焦镜头会比固定焦距的镜头更容易采集对象。

3.佳能MR-14EXII环形闪光灯

环形闪光灯比眼镜蛇闪光灯更好,因为它能去除大部分光线阴影。

4.250 Go内存卡(Class 10)

256 Go的容量足够满足一整天的拍摄量。Class 10用来最小化延迟时间。

5.笔记本:Macbook Pro

Color checker passport photo (X-rite).

每次拍摄时应使用颜色检查器来调节照片的白平衡。

6.HOYA Polarizer filter PRO 1 DIGITAL 67 mm.

在尝试采集漫反射反照率时,镜头偏振器用来消除反射光。

7.线性偏振器滤光片

线性偏振器滤光片是个放在闪光灯上的小型涂层,用来使光偏振。它允许你去除反射光照信息来更好地采集颜色信息。

8.相机备用电池

9.背包

10.Lenspen(镜头清洁工具)

11.LASTOLITE  背景支持套件,大小为H 3.52 x L 3m

12.PHOCUSLINE 黑色背景布,大小为3 m x 3 m

13.Lastolite Cubelite.

14.GODOX reflector 180 x 120 cm.

15.用来标记的帐篷钉和粉笔

16.GOPro

17.DJI drone Phantom 4 RTF

2、软件




1.DCRaw:用来将RAW转换为TIFF

Windows: http://www.centrostudiprogressofotografico.it/en/dcraw/

Mac OS: http://www.cybercom.net/~dcoffin/dcraw/

2.Adobe Photoshop CC:处理白平衡和人工修正

http://www.photoshop.com/products/photoshop

3.Reality Capture:摄影制图处理软件

https://www.capturingreality.com/

注意:建议使用高性能显卡,Reality Capture需要使用Nvidia显卡来更好地兼容其GPU处理过程。

4.3dsMax(或任意相关3D软件):用于处理重拓扑、UV、LOD

https://www.autodesk.fr/products/3ds-max/overview

PLY导入/导出插件:http://www.guruware.at/main/plyImp/index.html

5.Instant Mesh:重拓扑

https://github.com/wjakob/instant-meshes

6.Knald:烘焙纹理

https://www.knaldtech.com/

注意:建议使用高性能显卡。建议使用8GB的显存来处理非常复杂的网格。

7.Xnormal:用于烘焙纹理

http://www.xnormal.net/downloads.aspx

8.Substance designer:用于烘焙纹理

https://www.allegorithmic.com/products/substance-designer

9.Unity Light Removal Tool:从烘焙得到的纹理中移除光照信息

https://github.com/Unity-Technologies/DeLightingTool

10.Artomatix:自动拼贴材质

https://artomatix.com/

11.Substance painter:用于手动拼贴材质

https://www.allegorithmic.com/products/substance-painter

12.VLC media player:按帧查看视频

http://www.videolan.org/index.fr.html

建议电脑配置不低于:32GB内存,显存为4GB的Nvidia显卡,硬盘空间为2TB。Unity团队使用的CPU是intel i7-5960x,64GB内存,显卡是980 GTX,2TB硬盘空间。

采集过程

1、采集的三个问题

采集什么?

首先要明确在游戏中使用的环境类型是什么,然后整理出一份资产列表,列出需要为游戏关卡制作的所有资产。一定要检查哪些资产可以使用摄影制图法,哪些资产必须使用这种方法。

理解重构软件的工作方式会帮助理解什么样的平面最适合摄影制图过程。为了从大量图片重构几何体,需要使用重构软件基于相机信息从图片中恢复3D世界中大量像素的位置,如果存在具有足够相似度的空间像素组,则会形成一个点。通过这个过程得到的结果称为“点云”。

有些表面类型不适合使用摄影制图法。


  • 移动的对象,例如:风中摇摆的树叶。
  • 发光或是具有强烈反光的对象。例如:金属表面、潮湿的表面。
  • 液体或是透明物体,例如:玻璃表面

重构软件无法对这些对象的照片匹配像素颜色。使用这些对象会很难或是无法得到足够好的结果。下图展示了一些不适合摄影制图的对象示例。



此外,如果该对象拥有较大的单一颜色区域,重构软件将无法拥有足够的信息来区分相似像素组,因为它们都拥有相同的颜色。

对于单一颜色的对象,可以通过在对象上涂画或是投射固定的光照图案来辅助重构软件。不过这样操作只能提取几何体信息,相关纹理需要另外单独制作。

下面的示例中,左边是难以正确重构的拥有单一颜色的资产。得到的结果是多个分离的点云,效果并不理想。在右边的是带有绘制图案的相同单色对象,结果很不错,只创建了一个点云。



摄影制图法能很好地处理表面粗糙的静态固体资产。下图展示了适合摄影制图法的一些对象示例。



当使用摄影制图法创作资产时,考虑制作成本十分重要。即使对象符合摄影制图流程的要求,也并不意味着摄影制图法是最好的处理方法。

使用传统3D建模方法制作结构简单或是人工制作的对象会比摄影制图法更高效,因为这类对象带有单一颜色和简单的外形。下图中杯子就更适合在3D软件中直接进行制作。



要注意的是复杂对象,尤其是树根这类带有细小结构的对象。处理一个复杂资产的时间成本可能会很高。下图是个需要很长时间进行处理的资产示例。



何处采集

我们需要认真计划拍摄之旅,减少旅行距离从而避免浪费时间。好的区域拥有大量资产可供采集。

请注意遵守当地法律法规,许多区域有可能是禁区,例如:军事区域或者一些大城市会禁止使用无人机。当对象位于公共场合时,很难避免人们在相机前移动。所以必须寻找拥有足够空间的安静区域来采集对象的照片。



何时采集

在户外环境摄影时,天气是必须考虑的最重要因素。天气对摄影制图过程有很大影响。

雨雪天气是最糟糕的情况。此时的平面会一直变化,雨水在上面滑过、积雪会落下,反射效果会很强烈,镜头还会受到雨水和雪花的影响。

风也是个很棘手的因素。风会造成树木、草丛、灰尘、沙粒移动到图像中,造成重构效果不佳。对于小型对象,例如:小木块、树枝、松果,你可以将它们收集起来,带回室内并在安全的地方进行拍摄。

然而一些容易在风中移动的对象只能在现场采集,例如:树木、灌木和草丛。对于这些对象,你需要确保在没有风的时候拍摄它们,这样对象才会完全静止。

太阳会产生高光和强烈的方向阴影。这种情况必须要避免,因为这样会很难拥有好的曝光效果,造成高曝光距离的产生。在一个高对比度的照片中,噪点往往会出现在强烈的阴影中。此外,高光或方向阴影很难从已生成的纹理中被移除,而我们需要这一步来重新给采集对象生成光照。

下面的位置示例带有强烈的方向光,光源来自穿过树叶的太阳。这个位置生成的纹理会展示出难以消除的大量光照和强烈遮蔽。



在不下雨的阴天进行拍摄可以得到稳定的照明和非常柔和的阴影,这会让之后从图像移除光照信息的过程更为简单。然而这种天气的亮度会很低,需要提高ISO来拍摄。



拍摄的理想状态是在晴朗的天气,但要使用挡光器来将对象和方向光进行隔离。这样会产生类似阴天拍摄的柔和照片,同时拥有适合采集的更好的亮度。

最后,稳定的光照对重构软件提供一致的图片十分重要。太阳下快速移动的云也会带来麻烦。



第二重要的因素是季节。不同季节的光照会影响有机和有生命对象的外观,例如:秋天的树叶、树木或花朵,此外曝光值范围也会随季节变化,可用于在冬天进行对象采集的EV范围比别的季节都要小。可用的日光也会随季节变化。

2、采集视频还是照片

摄影制图过程依赖拍摄的源图像。所有采集过程可以通过GoPro或任意4K视频设备完成,从中提取出静态帧。因为这类视频录制设备较小,它们能让你快速得到对象的所有部分,并且可以和对象保持很近的距离。



但是GoPro和其它类似设备通常会对高亮度条件非常敏感,这使视频中明亮区域的周围出现泛光现象。这些设备也往往不能手动控制ISO和光圈大小。由于手抖或快速移动,采集到的视频可能包含较多动态模糊现象。所以建议使用全画幅静态相机来获得最佳效果。



视频录制设备能高效采集几何体,可以很好地用于粗略布局和快速测试。所以建议使用GoPro作为备用工具而不是主要设备。

3、相机设置

重构过程中的最佳效果是从不限定颜色范围的清晰图像获得的。照片的锐度在这里是个非常重要的因素。




  • 糟糕曝光的示例。黑暗或重叠的区域会造成糟糕的重构结果。
  • 糟糕图像的示例,该图像散焦过多,光圈为f/2.8。由于景深现象,松果的边缘完全是模糊的,所以这也是个失败的重构结果。
  • 正确的对焦和曝光示例。

建议的默认设置旨在拥有最清晰的图像:推荐使用f8的光圈,开启自动对焦,下图是多个光圈的对比。



如果你在户外环境进行拍摄,光照条件也会根据太阳或云层移动而变化。因此为了节省时间,不建议使用三脚架。也请不要花费一天时间来采集一块石头。快门速度必须是1/160及以下,从而在维持清晰图像的同时拥有快速手动拍摄的速度。ISO应该调至100或更低,从而避免噪点,尤其是在对重构软件不利的较暗区域拍摄时。



在光线不足的情况下,首先应该提高ISO,然后增加光圈。可能还需要稍微调整光圈来抵消高ISO所产生的的噪点。也可以使用三脚架提高快门速度,但使用三脚架可能会增加拍摄时长。

导出格式设置为RAW。RAW格式有更高的精确度用于重构过程,也能在图像中得到更好的白平衡。

在开始采集资产之前,必须使用相机的直方图来控制曝光等级,从而避免在对象上带有受限的像素并得到良好的曝光范围。

下方的示例图中,左图图像的曝光范围过小,无法进行重构,而且有很多像素会被限定。右图展示了用来重构的良好曝光范围。该对象在直方图的中间展示。



在照明范围中设置曝光范围十分重要,因为推荐的重构软件(Reality Capture)不会使用相机采集的完整14位文件,而且照片都会被转换为8位文件。





如何采集对象(非小型对象)

1、资产选择

摄影制图法最适用于制作在3D雕刻软件中需要大量时间制作的对象。所以不要将摄影制图法用来制作立方体这类简单的形状,也不要试图采集某个地点的所有对象。要根据可用部分来考虑需要采集的对象,选择可以让你重构环境的部分对象。重点是质量而不是采集数量。

下面的示例展示了环境中多个部分的识别情况,图中所提供的多个元素将允许你使用多个实例化资产构建游戏关卡。





不要从所有角度完全采集的大型对象,应该从它们要在游戏中展示的位置采集。对这类资产进行旋转会展示出未构建的部分。艺术家需要通过传统方式制作这类资产的缺失部分,从而能在所有角度下查看对象。

当采集一个对象时,避免在多角度观察时遇到的障碍物。还要注意阴影和高光,就像准备阶段何时采集部分所说的,条件合适的话就使用遮光板。



2、拍摄

颜色检查器设置

颜色检查器用来调节照片的白平衡,但也可以给虚拟资产用作比例缩放单位。

了解重构对象的大小是很重要的,因为摄影制图过程会丢失这个信息。所以拍摄时要为颜色检查器寻找一个合适位置。要和对象的距离足够近,但又不能处于对象的阴影中。要找到场景中可以在处理过程中将其去除的位置,或是能够在电脑上把它涂掉的位置。颜色检查器通常要面向天空放置。



距离/分辨率选择

采集图像时有必要评估对象的重要性。在游戏中靠近摄像机的资产会比背景资产需要更多纹理分辨率。你必须为各种资产定义纹理预算,这些决定将影响拍摄时所作的选择。与对象之间的拍摄距离取决于对象本身的大小、镜头变焦和纹理预算。对象应填充大部分图像,从而最大化重构质量。

如果想要采集到较高的分辨率,需要近距离地拍摄图像。有时需要较长时间来拍摄类似树桩这样大型对象的微小分辨率。此外,Reality Capture会根据所选的许可证限制重构时能使用的照片数量。

实际使用中,为了从树桩这样的大型对象采集到4096x4096的纹理,需要在1~2米之间的距离拍摄照片。

拍摄位置

当拍摄一个对象时,重要的是完全覆盖该对象。对象的所有部分必须被多张照片覆盖,从而让重构软件能够创建相似像素组,这样也能保证最后得到的资产不带有空洞或是欠缺采样部分。

理想情况下,拍摄位置应该如下图所示。



上图来自3ds Max中的截图,该图案是通过在对象附近移动并拍摄多张远景照片制作出来的,它需要少数近距离照片为重构步骤提供更多细节,在每个水平摄像机位置上,垂直覆盖对象非常重要。

在实际情况中,可能很难遵循这个理想的方法,或许你最后会得到类似下图的画面。下图来自Reality Capture中的截图。



在拍摄过程中很容易错过一些元素。如果可以的话,请拍摄大量照片并在电脑上进行查验。当结束拍摄后,往往很难回到同一地点并在同样的天气和光照条件下进行拍摄。

你也可以通过相似的方法快速获得GoPro 4视频。该视频在之后可以作为备份用来提取出缺失区域、欠采样区域或是重构效果较差的区域。拍摄这种视频不需要太多时间,而且可以节省很多重构校正的时间。颜色检查器必须出现在视频中,从而能够调节提取帧的白平衡设置。

GoPro也可以用来拍摄对于相机来说比较困难的部分。例如:相机无法拍摄树桩底部位置。



拍摄覆盖范围

重构软件需要在照片集中拥有足够的相似像素用来产生点云。为了进行精确的重构,建议使图片之间有90%的重叠部分。



这意味着只要每次拍摄之间,向旁边移动约30厘米的距离,并保持相机对目标对象的焦点,然后从上到下拍摄包含对象的照片。

你可以拍摄超过预期所需的照片数。但一定要在摄像机稳定的时候进行拍摄。在拍摄时的任何动作都会导致照片模糊。

比例单位

根据游戏的背景内容,在真实世界和重构的虚拟资产之间保持相同比例非常重要。为了做到这一点,需要在重构网格中加入已知大小的参考对象,它将用于定义比例的大小。

可以使用任何对象作为参考对象。颜色检查器就是一个很好的参考对象,因为它已经位于靠近目标对象的位置,而且带有5厘米的标尺。



对于类似城堡这样的大型对象,你可以测量出它一部分的大小,从而了解真实世界的大小比例。

3、大型对象

超大型对象需要使用无人机拍摄图像,这些对象包括:悬崖、城堡和船只等。

建议使用无人机录制视频而不是拍摄照片,因为对于这类大型对象,单个图像拍摄的方式并不会让你拥有更好的质量,而且视频能让你轻松覆盖整个对象。你也可以将近距离手动拍摄的图片和无人机拍摄的远景镜头混合使用。



另外,也可以用无人机来创建占位符区域或临时元素。下面的示例展示了使用无人机提取的照片通过Reality Capture重构的一个区域。它可以用作快速占位符的布局。



如何采集表面

摄影制图过程可以用来采集表面,以便之后作为材质用在游戏中。

1、准备区域

首先,找到一个没有阴影的位置,或使用遮光板来使当前位置免受光线的直接照射。然后去除不想要的元素,小心处理重要的元素或图案,尤其是打算创建可平铺材质时。要避免在采集区域走动,这样就不会在其中出现脚印或是破坏自然元素。

在采集位置使用标记工具,用来定义采集区域。标记工具例如:软的表面使用帐篷钉,硬表面使用粉笔。采集区域如下图中使用了红色箭头进行标记。



对于2Kx2K的纹理和游戏中每米1K体素的体素比例,使用的区域大小要2mx2m。在现实世界和虚拟资产之间保持相同比例很重要。记得将颜色检查器放在靠近采集区域的位置。

2、拍摄

采集地面

在扫描地表之前,建议拍摄周围环境的照片作为参考,用作位置提醒或是用来跟踪拍摄。

为了扫描地表,请按照从外至内的螺旋路径拍摄俯视照片。拍摄过程中要向侧面移动,保持头部朝着中心位置。不要碰到区域内的地面元素,注意身体阴影和自己的脚,不然会影响到重构结果。



下面是Reality Capture中的示例结果。正如预期结果,我们不可能拥有完美的路径,你只需确保能覆盖所有区域即可。下图一共拍摄了179张照片。



下图为完全处理后得到的纹理。



采集垂直表面

在扫描表面前建议拍摄周围环境的照片作为参考,用作位置提醒或是用来跟踪拍摄。

要扫描垂直表面,请按照左右方向的移动路径拍摄照片,如下图所示。



请将颜色检查器平行于表面放置。采集可以执行两次,第二次在更近的距离进行,以便为材质提供更多细节。

下图是Reality Capture中的示例结果。一如预期不可能得到完美的路径,你只要确保所有区域都被覆盖即可。



重新制作表面是产生可平铺材质的好方法。



这些材质可以用于手工制作的几何体,也可以在GoPro或无人机视频重构的几何体上使用。拍摄视频是个制作资产相当快捷的方法,因为这样的采集速度较快,而且不会牺牲资产质量。几何体会提供粗略的细节信息,而材质则提供精细的细节。

3、细节纹理

细节纹理是与主纹理结合使用的第二层纹理,用于提供更多细节。例如:通过以较小比例添加更高分辨率的细节纹理,可以增强用于覆盖石块模型大片区域的石块纹理,从而显示出石块上的小裂缝和缺陷部分。

同样的方法也适用于扫描出来的材质,首先粗略地进行扫描,然后进行第二次精细的扫描,用于在游戏绘制材质时进行组合。

细节纹理的采集过程和常规表面的采集过程一样,不过镜头会更近距离地拍摄小块区域。用于制作细节纹理所选择的区域应该尽可能通用,因为相较于主要纹理,细节纹理通常会在对象上多次平铺。

实际情况中,拍摄是在自动对焦限定的最近距离进行。下面的示例左侧是粗略的对象,用来创建几何体和基本材质。右侧是扫描出来的细节区域,用来制作细节纹理。拍摄距离是自动对焦所允许的最近距离。



你应该只选择一小块区域用作细节纹理。尝试将对象的大部分区域用作细节纹理会使纹理的分辨率过高,并且很浪费拍摄时间。

下图是在拍摄时根据不同目的与目标对象之间的正确距离示例。





  • 几何体:应拍摄整体照片,用来采集对象的主要形状。
  • 细节几何/材质:应较近距离地拍摄照片,从而得到几何体上的更多细节,用来制作可用材质。
  • 细节纹理:应在自动对焦限定范围的最近距离拍摄照片。用来制作细节纹理。


如何采集小型对象

通常我们通过在不同区域大量复制小型对象来丰富场景。我们可以旋转、缩放和镜像处理这些小型对象,从而创造多样化的效果。对于这类小型对象,需要从各个方向进行拍摄,从而重构出完整的资产。

1、设置支架

为了能够从所有角度采集小型对象,必须使其能以所有角度进行旋转。小型对象可以通过支架来放在相机前,理想情况下要尽量减少支架与对象之间的接触。

首先是找到一个好的支架。所需支架的确切属性取决于采集对象的形状和结构。由于在一次拍摄旅行中难以携带大量设备,所以我们会将小型对象收集起来带回工作室,在装有重构软件的电脑附近进行采集。这样可以让你能够完全控制光照效果。

下图展示了一些支架示例。



左图是个三脚架和螺钉,用于采集松果的所有部分。右图使用了夹钳将常春藤的根放在合适的位置进行采集。

支架类型根据对象而异,但常规要求如下:



  • 要将对象放在一个所有采集部分都可见的位置。
  • 最大限度减小支架部分以便之后去除。
  • 支架和对象的放置状态必须稳定。

2、拍摄

对于完全采集对象所需的照片数量并没有具体的建议。松果这类复杂对象可能需要上千张照片来采集,你可以在对象附近使用蛇形左右路径来覆盖对象的所有部分。

下图是拍摄位置示例,这是使用3ds Max模拟出来的理论位置。



将场景保留在原位,检查照片的对齐情况。如果重构软件不能让图像互相匹配来生成单个点云,且因此产生了多个网格,那就在失败位置拍摄额外的照片。

在下图中,红色的摄像机代表第二次拍摄过程,用来提高图像匹配率并产生单个点云。在考虑用更多照片解决问题时不要犹豫,这样做比使用软件的功能和帮助解决的更快。



在松果样本中,第一次短期拍摄过程产生了564张照片。在Reality Capture中,第一次图像对齐过程创建了10个组成部分,即10个网格。在相同组成部分即单个网格上,还需要进行至少五次的拍摄过程。最后一共拍摄了1008张照片用来制作这个复杂的资产。

如果无法维持场景设置或是图像对齐过程无法检查,那就使用GoPro来制作视频,从而能够从中提取一些画面并保存过程。

下面是Reality Capture中得到的最后结果。



如何仅采集漫反射反照率(颜色纹理)

漫反射反照率(颜色纹理)是独立于视图的对象颜色。将漫反射反照率从摄影制图生成纹理中恢复的常规步骤会后续部分讲解, 这一部分将详细让你了解如何直接从照片中创建接近对象漫反射反照率的纹理。

这个过程不会使用上百张照片,这里只需要拍摄一二张照片,然后用作小型对象的漫反射反照率纹理,或是作为验证光照移除结果的参考画面。在完成拍摄后,建议使用下面的方法近距离拍摄对象的漫反射反照率照片,这将在光照移除过程后,为验证重构得到的反照率提供帮助。



为了采集优质的漫反射反照率,你需要使用一些特定设备:一个环形闪光灯和二个偏振滤光镜。一个是用于相机的镜头滤光镜,另一个是用于光源的线性偏振滤光镜。这里的目标是移除任意与视图相关的效果,例如:反射效果。

设置偏振滤光镜

我们可以旋转偏振滤光镜,来允许更多或更少的偏振光通过镜片。

首先是识别滤光镜的方向。这可以通过LCD屏幕来完成。LCD屏幕使用线性偏振滤光镜,所以如果另一个偏振滤光镜以90°的角度覆盖屏幕,那么屏幕的光线会被阻挡。如果是0°,那么光线会通过。

经过这个测试,可以轻松对齐偏振膜和偏振滤光镜。



为了能够采集靠近漫反射反照率的颜色,需要尽可能移除方向光信息。方法是在拍摄在照片上只会出现来自闪光灯,受到我们控制的光照信息。这意味着来自闪光灯的光需要比来自环境的光更明亮,同时也更明显。

建议使用环形闪光灯而不是眼镜蛇闪光灯,因为它会在照片上不太明显的位置产生平行阴影。环形闪光灯在LED灯上增加了线性偏振滤光膜,用来线性偏振闪光灯光线,然后镜头滤光器会用来给相机移除闪光灯的反射。



通过这样的设置,镜头偏振滤光镜可以旋转为0°或90°来获得带有或不带有镜面反射效果的照片,这意味着镜头滤光镜和闪光灯滤光镜可以是平行的或是垂直的。



下列示例展示的是使用上述设置的拍摄结果。

左图中镜头滤光镜的方向是0°,即镜头和光线偏振滤光镜的方向相同,可以看到来自闪光灯的反射光。右图中,镜头滤光镜的方向是90°,即镜头和光线偏振滤光镜的方向不同,所以来自闪光灯的多数反射光被过滤了。



为了最大限度地减少环境反射光,请以1/180以下的快门速度来设定曝光。通过这样设置,照片中只会显示来自闪光灯的光线。这些照片可以产生用来制作粗糙度/光滑度纹理的相关信息。

偏振照片应该通过颜色检查器来调节白平衡,从而得到正确的曝光,得到的照片会展示反照率的效果。下图是原始照片和白平衡后的照片对比。



如果能用这种方法拍摄所有的镜头,就可能不需要光线移除过程了。然而这种方法并不完美,还存在一些问题:



  • 使用来自镜头滤光镜支持的遮蔽会意味着需要更多的照片,因为这样拍摄所能获得的覆盖范围较小。
  • 闪光灯的电池可能不足以这么密集地使用。在拍摄几张照片后电池可能就用完了。
  • 采集时间会大大增加,因为必须等待闪光灯重载完成,这样一来该拍摄流程就不是很实用了。
  • 如果拍摄对象受到了太阳这类强光照射,这样的设置就不起作用。由于太阳光太强烈,它仍会在闪光灯照明的照片上产生阴影和反射。

使用环形闪光灯以1/4000快门速度拍摄的照片示例,下图中红箭头所示会产生阴影和反射,解决的方法是使用遮光板。



如何采集树叶

树叶十分难以采集,主要原因是其对风敏感,会在采集过程中不断移动。尽管如此,还是建议在现场进行采集,因为摘下并将树叶带到另一个地点的这段时间内,树叶的样貌就会改变。

虽然可以使用其它自定义设备的处理方法,也可以在不同光照条件下处理,但是这样会降低工作的效率。为了解决这些问题,建议只使用摄影制图过程来采集反照率。

出于性能考虑,多数游戏使用简单的平面多边形来展示树叶。在这样的环节中提取几何体只会对法线贴图有所帮助。你需要找到所需设备、采集时间、重构过程和手动制作这四者之间的平衡。我们建议在3D软件中手动构造几何体。

首先,创建出一个不受到任何重要的直接光照影响的位置。



然后,将树叶和颜色检查器放在无光泽的黑色背景中,快速创建出没有环境光的纹理遮罩。使用彩色背景会产生问题,因为彩色会影响树叶边缘的颜色。

最后,使用带有环形闪光灯和偏振滤光镜之间角度为90°的相机,采集漫反射反照率。调节好照片的白平衡,得到的结果接近漫反射反照率。该几何体可以在3D软件中建模,并手动制作或生成出法线贴图。





今天我们将介绍摄影制图法最后的一个阶段处理过程,由于篇幅限制,我们本篇重点为:图像处理、重构创建模型、烘培网格

处理阶段

重构软件是摄影制图工作流程处理阶段中最重要的一部分。

我们建议使用CapturingReality的Reality Capture。Reality Capture的重构效率和质量都远超Agisoft的Photoscan、Autodesk的123D Catch这些软件,而且价格实惠。像visualSFM这样的解决方案,并不能用于商业用途。

图像处理-DCraw和Photoshop

1.确定重构所需的图片集

在开始进行处理前,先检查提供给重构软件的照片是否足够。使用Reality Capture意味着图像应该互相对齐并创建出单个组件。你可以使用Reality Capture中的RAW数据来直接检查图像集的对齐情况。

如果需要更多图像,可以需要再次踏上拍摄之旅,或者使用拍摄结束时录制的4K视频,从中提取画面图像。这一步骤必须首先完成,以便后面能够顺利完成对照片集的操作。

2.将RAW转换为TIFF

Reality Capture可以直接处理RAW文件。然而,为了在提取漫反射反照率时得到更好的结果,需要正确将图像转换为线性格式,并且调节照片集的白平衡。

这里我们使用的是DCraw而不是Photoshop或Camera RAW,因为DCraw能让你在导出为TIFF时拥有正确的线性转换。这也意味着我们不会在调节白平衡时使用Camera RAW。我们使用的是Photoshop。





为了将RAW文件转换为TIFF,在包含照片和DCraw可执行文件的文件夹中打开命令提示符。运行命令"dcraw -v -4 -T *.CR2",CR2为RAW文件格式。

命令参数解释如下:

-v:打印出转换过程的详细信息,因为这个过程耗时较长

-4:通过使用相机的白平衡并设置伽玛曲线为1来导出16位线性格式

-T:导出为TIFF格式

然后将所有TIFF文件(16位文件)移动到特定文件夹中。

3.白平衡

在发送给重构软件之前,照片上的白平衡在Photoshop中是以32位格式来处理的。具体过程如下:



  • 在Photoshop中打开包含颜色检查器的TIFF文件
  • 将TIFF文件转换为32位
  • 选取第二灰色色块(60%)的颜色。最好使用第二个色块,尤其是当第一色块接近1 (255, 255, 255)时
  • 关闭TIFF,不保存改动
  • 对TIFF文件夹应用色块脚本

  • 转换为32位
  • 用0.6, 0.6, 0.6 (60% 灰色)的纯色新建一个图层
  • 设置纯色图层为multiply(正片叠底模式)
  • 新建带有之前选取颜色的图层
  • 设置颜色图层为divide(划分模式)
  • 合并所有图层
  • 转换为8位
  • 保存并关闭

照片将转换为8位,以避免Reality Capture中的伽马校对出现问题。而且8位文件的存储所需空间较小,在处理大量照片时很有帮助。

在重构期间,Reality Capture会转换图像为8位格式,例如JPEG。所以在存储为8位时不会丢失任何信息。

重构-Reality Capture

1.添加所有图像

使用添加图像或文件夹的按钮来载入照片集,或者通过从文件浏览器拖入文件来载入。



无论何时都可以添加照片,在对齐过程产生多个组件时也可以添加照片。

2.对齐图像

在开始重构前,图像必须对齐在一起。每当添加新图像时,都需要对图像进行对齐处理。



3.检查组件

请检查是否所有图像都被分到同一组件中。



如果没有的话,从新的采集过程添加更多图像,直到所有图像都链接到相同的组件为止。



当你拥有单个组件时,就可以用它进行重构了。

4.视频中的帧

VLC可以用于从视频中提取单帧画面,步骤如下:





  • 启动VLC。
  • 点击Tools -> Preferences
  • 将Show settings调为All。。
  • 在Video/Filters设置目录中勾选"Scene video filter"。别忘了在完成任务后取消勾选这一选项。
  • 在Video/Filters/Scene filter设置目录中添加保存各帧画面的目录。
  • 设置Recording ratio。将该值设为10,指每10帧保存1帧画面。
  • 保存设置。
  • 打开并播放视频。



各帧画面将在播放时提取到所选目录中。

请注意:Reality Capture 支持VLC默认提取格式,即png格式。从视频中提取出的图像也需要调节白平衡。采集的视频必须在一些画面中包含颜色检查器。

5.控制点

如果不是所有图像都链接到同一组件中,并且没有更多的可用图像,则需要手动创建控制点来校正缺失链接。

创建一些控制点并在图像上拖放它们到不同的组件中。不同图像的控制点应该在3D空间中展示相同的位置。



在添加几个控制点后,测试图像对齐来检查它们是否解决了缺失链接的问题。重复这个过程,直到得到一个用于重构的有效组件。

添加控制点是个十分漫长的过程。建议尽可能地添加照片来解决缺失链接,因为这种修复采集内容的方法更快。

6.设置缩放大小

控制点可以用于设置对象的实际比例。



创建二个控制点并将它们放在显示颜色检查器标尺的图像中。我们必须将这些控制点分配给二个或更多图像。使用的图像越多,结果就越精确。对于自然资产,二个图像就足够了。



在对齐选项卡中点击"Define distance"(定义距离)按钮。单击第一个控制点,然后按住左键将其连接到第二个控制点上,这样就可以将二个控制点链接起来。松开按钮时,距离限制就创建出来了。



默认情况下,距离单位是米,你也可以在Reality Capture安装文件夹中的local.xml文件中修改单位。



在限制属性中,设置距离为0.05。

护照颜色检查器标尺的长度是5厘米。如果你在照片中使用了不同的长度,请输入其测量值。单击“定义距离”按钮下的“更新”按钮来刷新实际距离值。



缩放设置也可以在重构后调整。

对于表面和细节材质,则不需要重新缩放。它们的大小受到采集期间的标记以及纹理分辨率的限制。例如:2048x2048的面积为2平方米,游戏比率为1024/m。

7.创建模型

首先选择用于创建模型的组件,然后设置重构区域。对于表面和细节材质,设置靠近标记的位置为重构区域。

选择模型质量,理想情况下应该选择最高质量的模式,但也可以根据电脑的处理能力选取较低的等级。

下图显示了用三层细节重构的岩石。



  选择预览质量大概会用36秒产生230万个多边形的模型。这个模型可以用来烘焙出1K分辨率的纹理。

选择正常质量大约会用28分钟产生1.015亿个多边形的模型。这个模型可以用来烘焙出分辨率高达8K的纹理。

选择高质量则会用7小时21分钟来产生4.073亿个多边形的模型。这个模型可以用来烘焙出分辨率高达16K的纹理。

高质量模式或许看上去并没有必要,但这是确定对象上所有部分都有正确分辨率的一个好方法。正常质量可以在一些部分产生平均结果。法线贴图的烘焙质量取决于高质量网格。

8.上色或纹理

使用Reality Capture可以通过顶点(Colorize上色)或是在纹理中存储颜色信息。



如何选择将取决于重构结果。当重构点云密集且均匀时,建议使用顶点上色。

Reality Capture会将网格显示为点云,但在内部它将其转换为带有顶点的网格。照片颜色会转换为顶点颜色。该过程需要一个.ply文件,该文件处理顶点颜色,文件格式比带有大型纹理的.obj文件更好处理。

在顶点存储颜色的另一个好处是,不会对模型的大小造成任何限制。16Kx16K的纹理只能存储268 Mpixels,高质量模式可以产生顶点数大于2.68亿的模型。给顶点上色所需的时间取决于顶点总量。



稀疏区域和密集而均匀的区域




如果点云比较稀疏,或是在重构中有明显的间隙,建议使用纹理而不是顶点颜色。

这是因为来自源照片的颜色会传递给纹理,而且纹理会跨越顶点间的间隙,因为它们是在网格表面上绘制的。默认纹理大小是16Kx16K,这个值可以在网格属性中修改。在烘焙过程前最好尽可能保持较高的质量,即使用高分辨率纹理。



请注意:从源照片创建颜色纹理和创建法线贴图是二个分离的过程。颜色纹理与漫反射反照率纹理有关,而法线贴图的创建过程仅取决于重构几何体的质量。

9.简化

使用Reality Capture生成的高分辨率网格不能用于实时环境中,而且多数3D软件无法处理如此巨量的网格,因此需要使用较低分辨率的网格。

所以我们需要通过使用烘焙工具生成法线贴图来做出尽可能与高分辨率网格相似的较低分辨率网格。烘焙工具会传输高分辨率网格的高频信息到贴图中,否则这些高频信息将在转换低分辨率网格到纹理时丢失。

Reality Capture提供Simplify简化流程来优化网格。简化能允许你定义想要的多边形数。如果简化过程得到了不错的结果,它可以用作基础产生用于烘焙的低分辨率网格。

如果得到的结果不够好,或是如果网格还是太复杂,可以使用简化流程来制作带有100万或200万多边形数的中等分辨率的网格,这样的网格可以轻松导入到类似3ds Max的3D软件。你可以在3ds Max使用它来制作出用于烘焙的低分辨率网格。

10.导出网格

高分辨率和中低分辨率的网格都会被导出保存。高分辨率网格将用作烘焙法线贴图的源,而中低分辨率网格可以在3D软件中重新制作并生成合适的低分辨率网格,用作烘焙的目标。

在工作流程或重构选项卡中点击Mesh按钮。如果重构结果得到了密集而均等的网格,选择.ply格式。我们必须对网格进行上色。



Save mesh by parts属性应设为False。

Export vertex color属性应设为True。

不应用任何移动和缩放设置。

其它情况下选择obj格式。网格必须有纹理。





Save mesh by parts属性应设为False。

Export vertex color属性必须设为True。

不应用任何移动和缩放设置。



在之前的岩石示例中,导出为.ply格式的高分辨率网格大小为7.77GB,而.obj格式的大小为47GB。如果想要节省时间和磁盘空间,建议使用.ply格式。

为烘焙创建低分辨率网格

低分辨率网格将用作烘焙目标。高分辨率网格和低分辨率网格必须位于相同位置且大小相同,因为烘焙过程要从高分辨率网格向低分辨率网格进行投影。

在这部分,我们需要使用到3ds Max的PLY导入/导出插件。在3ds Max中,从Reality Capture导入中分辨率或低分辨率。设置缩放值为1,确保没有选中翻转轴。

1.可平铺表面

在Reality Capture网格创建一个方形平面,平面需要具有足够的分区来匹配全局形状。然后应用平面UV,建议在下面投影步骤之前执行这一步。在Reality Capture网格上投射方形平面,使用一致性工具可以快速完成。

设置缩放值为1,不选中翻转轴,并以.obj或.fbx格式导出平面。该平面将用作烘焙的低分辨率网格。



2.细节材质

对于细节材质,我们的目标是在细节法线贴图中仅烘焙高频信息。

创建一个拥有足够分区的方形平面,用来匹配网格的中低频信息。网格中的分区越多意味着在法线贴图上存储的信息更少。有了匹配中低频信息的网格分区后,细节纹理的烘焙过程将只保留高频信息,然后应用平面UV。

将方形平面放置并投射到Reality Capture网格上。一致性工具可以快速完成这一步。

设置缩放值为1,不选中翻转轴,并以.obj或.fbx格式导出平面,该平面将用作烘焙的低分辨率网格。



3.对象

几何体

从Reality Capture低分辨率网格开始处理并清理网格,或是基于Reality Capture的中分辨率网格进行重新拓扑。这一步是制作游戏资产的常见过程,因此在这篇指南中不多加叙述。



为了节省时间,中分辨率网格可以通过Instant Mesh软件进行处理,制作出低分辨率网格。这样得到的结果通常质量不错。即使质量欠佳,它仍可以给3ds Max制作用于烘焙的低分辨率网格。



3ds Max清理网格。



UV布局

任何UV工具都可以用来完成UV布局。

我们可以尝试通过降低UV簇的数量来最大限度减少接缝数,并使用所有可用空间。在多边形数量和等效UV空间之间保持均匀的比例。在网格的所有可见部分上,使它们都拥有相似的纹理分辨率是很重要的。UV对最后得到的资产质量有很大影响,需要花费较多的时间。

点击Unwrap/display/Show Edges distortion打开检查边缘失真功能,并通过创建新接缝并使用UV松弛来最小化边缘失真的情况。



如下图所示:红色部分表示明显的边缘失真情况。

在完成UV布局后,用.obj或.fbx格式导出没有修改过缩放、旋转和位置的网格。注意导出时缩放值为1,确保未选中翻转轴。

请注意:使用.ply格式时不会使用UV1通道。当使用带有Reality Capture所生成纹理的.obj格式时,会使用UV1通道。



今天我们将介绍摄影制图法最后的一个阶段处理过程中的:纹理烘培、移除光照、创建游戏资产

纹理烘培

我们推荐使用Knald来处理烘焙过程,因为它速度又快又精确。我们也可以使用Xnormal或Allegorithmic Substance Baker等工具,然而这些工具处理烘焙耗时过长。建议处理同一资产的所有纹理时使用相同的烘焙软件。

Allegorithmic Substance Designer不支持.ply格式,这对之前的工作流程来说是个限制。为了使用Designer来实现烘焙,可以导出带有彩色纹理的.obj格式。

我们至今还未烘焙光滑度贴图。自动制作光滑度贴图比较麻烦,所以按照之前的工作流程看,需要使用带有闪光灯效果的照片作为参考来手动制作光滑度贴图。

1.Knald v1.2.1工作流程

在Knald 1.2.1.版本中,高分辨率网格被限制为一个网格只能带有3.5亿个顶点。

打开Knald,按下CTRL+B打开Baker烘焙器标签页。

Baker标签页

设置抗锯齿为16X,对应游戏比率为1024/m或更低的纹理。

设置所需贴图大小。

指定高分辨率网格。

指定用于烘焙目标的低分辨率网格。

使用默认设置添加烘焙目标:



  • 高度(Height):用于实时环境的材质。
  • 切线空间法线(Tangent space Normals):作为法线贴图用于实时材质。
  • 对象空间法线(Object space Normals):用来去除光照。
  • 环境遮蔽(Ambient Occlusion):用来去除光照并在实时材质上使用。
  • 顶点颜色(Vertex color):来自顶点颜色的信息将传递给纹理,从而能够制作受光漫反射反照率纹理。
  • 对象空间弯曲法线(Object space Bent Normal):用于去除光照。
  • 位置(Position):用于去除光照。仅在使用大量集群处理UV后需要
  • 标准化(Normalization)应设为“Uniform”。

下图为烘焙器标签页。



Preferences标签页

设置纹理命名的前缀和后缀。

Export标签页

设置全局导出设置为TGA格式。TGA是安全的8位格式,所有软件都能正确处理TGA格式。

TIFF格式在不同软件中有不同的伽玛设置。

PNG格式在被Photoshop保存时没有Alpha通道。

选择导出路径。

Main标签页

输入导出名字。在偏好设置中设定的前缀和后缀会添加到这个名字上。

使用Baker标签页中预处理(PreProcess)按钮来开始烘焙。

导出所有内容。

展示所有导出贴图的示例。



2.Xnormal v3.19.3工作流程

高分辨率网格标签页

添加高分辨率网格。

从.ply顶点颜色生成基本颜色时需要取消勾选Ignore per-vertex-color(忽视各个顶点颜色)。在进行其它烘焙时必须勾选这个选项。



低分辨率网格标签页

添加低分辨率网格。



烘焙选项标签页

命名输出文件。需要根据烘焙的贴图添加后缀。

使用边缘填充(Edge padding)功能,指定一个非零数值。

设置大小。

设置抗锯齿。建议为游戏比率1024/m及以下的纹理使用。

对于要渲染的贴图需要处理以下设置:



  • 法线贴图(Normal map):设置切线空间的开或者关,具体取决于是否为切线或世界法线贴图。这二种法线贴图不能同时制作。
  • 高度图(Height map):如果使用原始值,需要exr格式,中间值设为0.
  • Interactive and Manual使用8位格式,中间值为0.5。
  • 环境遮蔽(Ambient occlusion):分布设置为余弦。扩展角度设置为179.5°。
  • 弯曲法线(Bent normal):分布设置为余弦。扩展角度设置为179.5°。






  • 烘焙高多边形顶点颜色。由于高分辨率网格中有不同的设置(Ignore per-vertex-color设置),这个贴图必须单独生成。




请注意:Xnormal中不存在位置贴图。

最后,使用"Generate Maps"按钮来开始烘焙。

3.Substance Designer 6

创建新资产包

在资产管理器视图按下鼠标右键,选择“New Package”。



在新资产包按下右键,依次选择Link / 3D Mesh。



在低多边形网格上按下右键,选择Bake Model Information。



添加以下烘焙器:



  • Color Map from Mesh
  • Ambient Occlusion from Mesh
  • Normal Map from Mesh
  • Bent Normals Map from Mesh
  • Position




请注意:所有显示“from Mesh”的烘焙器都会显示警告标志。这是因为没有引用高分辨率几何体。

点击其中一个警告信息,然后在右侧面板引用HD网格。



下面是每个通道的设置。








最后一步是选择输出文件夹,设置烘焙贴图的正确格式。除了位置贴图外,8位能用,但是类似exr的32位格式会提供更高的精确度,所有文件都应该是8位文件例如:tga。

移除光照

本指南介绍的工作流程是针对将在关卡中采用动态照明的游戏资产。照片中包含拍摄时镜头环境的光照信息。为了能够应用虚拟光照,需要从创建的纹理中去除所有光照信息。在这个部分我们将详细讲解这个过程。

1.Unity光照移除

有多种方法可以去除纹理的光照。有些方法需要有关拍摄时环境光的更多信息。对制作来说节约时间很重要,Unity开发了一个工具可以仅使用来自烘焙的基本颜色去除光照。该工具的优点有:



  • 快捷
  • 去除许多光源
  • 去除彩色光照
  • 去除环境光照



在Unity中导入在去除光照信息时所需的4或5张贴图:



  • 带有代表集群的Alpha的基色
  • 环境遮蔽
  • 对象空间法线
  • 对象空间弯曲法线
  • 如果需要的话可以使用位置信息




在光照移除工具中使用导入的纹理。





根据需要编辑遮罩并导出结果。如果依旧存在人工合成的痕迹,就使用Photoshop来处理掉。

得到的结果取决于烘焙质量。也就是重构结果的质量。黑色部分得到的结果较差。如下图所示,图中还可能出现一些人工合成的痕迹,并存在难以去除的阴影部分处理之前图片中的红色形状。



2.Photoshop光照移除

Unity光照去除工具并非十全十美,有些纹理可能存在难以自动移除的光照。这种情况下,可以使用Photoshop来巧妙地移除光照,即靠艺术家的技能移除光照,而不是软件的自动流程。

这个方法需要的时间较长,而且如果纹理中有太多光照、各种色光或是有显著的全局光照,去除光照的难度较大。Photoshop中的光照去除流程是基于世界法线和环境遮蔽贴图实现的。光照去除在32位格式上完成。

光照去除流程:



  • 从烘焙载入基本颜色。
  • 切换为32位格式。
  • 创建一个曝光图层,将环境遮蔽贴图反转为遮罩。反转的原因是因为相比于使图像剩余部分变暗,照亮这些部分的效果会更好。
  • 创建带有世界法线红色通道的曝光图层。
  • 创建带有世界法线绿色通道的曝光图层。
  • 创建带有世界法线蓝色通道的曝光图层。
  • 用这三个曝光图层来管理全局光和方向光。
  • 添加一些曝光图层来管理高光。可以使用高通道滤波器(位于Filters/Others/High Pass)来轻松分离这些高光。
  • 与反照率照片参考进行比较,添加最后一个曝光图层来管理所有曝光,详情请参考:摄影制图法工作流程指南(3)采集漫反射反照率部分内容。


下面示例中可以看到环境光仍然影响着基本颜色,被标出的红色形状。



3.结合Unity与Photoshop光照移除解决方案

第三种方法是使用Unity光照移除工具的输出结果,如果效果不够好,可以结合Photoshop的手动处理方法来得到理想结果,如下图所示。



可平铺材质

有些游戏资产需要可平铺材质来具有可重用性。平铺过程耗时较长,为了辅助这个过程,我们建议使用二个不同的方法:



  • Artomatix可以用于自动工作流程,用来制作可平铺材质。
  • Substance painter相结合可以用作艺术工作流程。



1.Artomatix

在编写本文时,Artomatix服务已经通过其网站完成了。



工作流程:

访问Artomatix网站。

选择移除接缝。

上传纹理。



  • 从光照移除过程得到的基本颜色
  • 烘焙的法线贴图
  • 烘焙的高度图
  • 来自烘焙设置边框和遮罩的环境遮蔽贴图。



仅需几分钟就创建出了可平铺材质。

如下图所示,右图是个完全由Artomatix基于左边原始图生成的可平铺纹理。如果一些图案太过明显,可以通过一些遮罩来移除。



这个过程速度很快,但是当前版本得到的结果会显示太多相同的图案。这些图案可以使用Substance painter来移除。

2.Substance painter

Substance painter不仅能让艺术家在3D对象上绘制材质,也可以用来移除Artomatix的人工合成痕迹,或是直接用于制作可平铺材质。

使用一个带有3x3平铺的平面作为3D网格。需要使用该平铺来管理边缘之间的过渡。在Substance painter中设置材质,使用Painter克隆工具来制作可平铺材质。



通过克隆工具,我们平铺了边缘,擦除了颜色检查器,并且替换了一些不想要的图案。

创建游戏资产:3ds Max

使用已经烘焙过纹理的低分辨率网格作为游戏资产的基础。

不要修改用于烘焙的UV1通道。

放置轴心点,设置网格位置为0, 0, 0。

按照游戏中的效果旋转网格,应用重置Xform。

当在Unity中使用可平铺材质处理材质分层时,需要使用第二个UV集。本示例中要注意UV方向,根据需要制作细节层次。

得到的游戏资产效果如下图所示。



石块资产和分层的可平铺材质都是用摄影制图法处理得到的。

树叶制作:Photoshop

树叶在摄影制图过程需要手动处理一些自定义元素。目前建议使用基于照片的流程进行制作,这样不用经过任何3D重构,能够节省时间,得到的结果对游戏来说已经足够。

1.基本颜色

打开照片,转换为32位,调节照片的白平衡。这一步中,照片的效果类似于颜色贴图。下一步是制作Alpha遮罩。

将图像转换为8位,然后使用Hue/saturation来设置饱和度为0,这样能得到灰阶图像。多次使用Brightness/Contrast来制作黑白图像。可以使用高斯模糊来擦除灰尘上的合成痕迹。接下来移除颜色检查器,手动清理最后的合成痕迹。



这种黑白纹理可以用作遮罩。将它保存在漫反射反照率纹理的Alpha通道。

当有大量树叶时,将它们打包为图集会更高效。



2.法线贴图

为了制作一个树叶的法线贴图,需要制作二个法线贴图并结合起来。该方法有点特别,但通常能得到足够好的结果。它需要使用Xnormal Photoshop插件。

第一个法线贴图是基于之前过程生成的遮罩制作出来的,它会定义全局形状。



  • 将遮罩复制到新文档中。
  • 设置模式为RGB Color。
  • 应用高斯模糊来制作圆角形状。
  • 使用Xnormal过滤器的"Heights2Normals"

如果树叶更复杂,可以制作简单的3D网格,然后进行烘焙来得到全局形状。



第二个法线贴图使用漫反射反照率贴图来提供更多细节。



  • 使用Xnormal过滤器的"Heights2Normals"。




结合二个法线贴图:



  • 从形状载入法线贴图。
  • 创建分组。
  • 添加新图层,图层中是来自反照率贴图的细节法线贴图。
  • 在红色和绿色通道填充白色。
  • 设置图层为multiply。只保持蓝色通道。
  • 添加新图层,图层中是来自反照率贴图的细节法线贴图。
  • 蓝色通道中填充灰色(128, 128, 128)。
  • 设置图层为叠加层(overlay),只保持红色和绿色通道。
  • 管理分组的不透明度,带来更多或更少细节。
  • 复制粘贴新的顶部图层结果。
  • 使用Filter/Xnormal/Normalize处理法线贴图。




最后,我们为纹理的命名设置前后缀。虽然得到的结果不是很准确,但这是最简单的方法,能够制作效果足够好的成品。

游戏内渲染效果如下图所示。



小结

《摄影制图法工作流程指南》分享到此就全部结束了,我们希望更多开发者和游戏工作室能够掌握和运用到摄影制图法,创作出精彩的作品。


评分

参与人数 6元素币 +93 活跃度 +58 展开 理由
July + 16 + 4 资源哪里好,肯定元素找。
盆子 + 9 + 1 太秀了吧?
神座 + 18 + 1 收藏就对了
源支始 + 10 + 12
KL呆呆L + 20 【感谢】楼主分享的内容!很棒!
元素界王神... + 40 + 20 扫描制图流程很真实,但知识点也是爆炸

查看全部评分

使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表