在上一篇文章中,小编为您详细介绍了关于《中年失业模拟器怎么快速赚钱 致富方法介绍》相关知识。本篇中小编将再为您讲解标题TGDC | 让现实更理想·室外3D大场景重建。
|
2020年12月9日,由腾讯游戏学院举办的第四届腾讯游戏开发者大会(Tencent Game Developers Conference,简称TGDC)于线上举行。来自腾讯互动娱乐NExT Studios的高级技术美术师金力和高级工程师李奇先生,分享了Photogrammetry技术的使用流程和实践经验。以下是文字实录: 大家好,我叫金力,我是一名技术美术,来自腾讯NExT工作室,今天我要分享的题目是《Photogrammetry在游戏领域中的应用》。这次分享主要由三部分组成,介绍Photogrammetry的美术制作流程,我们在实际应用中遇到的问题,还有Delight工具的介绍,最后一部分将由我的同事李奇做详细的介绍。 Photogrammetry介绍
Photogrammetry,近些年来,这个词在游戏领域越来越多地被提及。它是什么?它是一种通过对一系列照片里的图像信息做对比,测量,并把这些信息翻译成模型,贴图等有用信息的技术。他的输入是一系列照片,输出是一系列点云信息/3D模型信息。简而言之:使用这种技术我们可以通过对物体拍摄各个角度的照片,从而在软件里快速还原模型的形状和颜色。
让我们来更清楚地认识它,首先请看这两张照片,哪张是真实拍摄的照片,哪张是3D模型的截图吗?是右边这张 你猜对了吗?从肉眼上确实很难分清,这也是Photogrammetry的优点:还原真实性。
接下来让我们更仔细地了解它。首先它是一组点云数据,并且通过点云生成模型数据。最后再把照片的颜色投射到模型上。
这个模型是我用手机,在我的办公桌前拍摄的,一共拍了27张,并导入软件输出的,整个模型的生成过程耗时不超过15分钟。
那么它有什么优缺点呢:优点是快速高模的生成,精准的外形还原,以及真实的颜色还原。例如照片里的头骨,可能通常美术需要一周甚至更久去制作高模和它的颜色信息,而使用Photogrammetry可以在短短数小时完成。但是前提就如它的缺点。
1. 一定需要有实际可拍摄的物体,对于非写实类的没有办法制作。 2. 拍摄时非常依赖有良好的光照环境,棚拍需要打灯,外拍需要选择阴天以避免生成贴图上的强烈阴影 。 3. 对于表面光泽度较高的物体,没有办法生成模型。
Photogrammetry已经在大量的写实类游戏里广泛应用。例如EA的《战地》,《星战系列》以及《FIFA》系列。育碧的《刺客信条》等游戏里都有大量应用。极大地提高真实度的同时,并极大地缩短了一些物件的制作周期。
另外Photogrammetry在其他领域也有很多用武之地,比如对古生物化石和古文物的数字化保存。对地貌的三维重建。甚至可以通过显微镜拍摄的照片,制作微生物的三维模型!可以说只要照片能拍清楚,它都能用。
这样一个技术如何应用到游戏制作呢?我们梳理了一下美术的制作流程,分为拍摄照片、照片校色、模型/颜色生成、模型优化、贴图烘培、导入引擎。和普通美术管线相比,可以看出Photogrammetry的另一个优势在于高模的制作周期极大地缩短。 Photogrammetry的制作流程
首先是设备的选择: 推荐采用单反相机,可以输出Raw格式方便后期校色,更好EV控制和更高的成像质量。镜头采用可变焦镜头针对不同的环境。外拍记忆卡和电池要准备充足。准备好色卡,测量卷尺。
调整相机到手动M档,固定白平衡,输出格式为RAW方便后期校色。
选定拍摄目标后,使用色卡的18灰卡面确定相机在当前环境下的曝光。调节ISO,快门速度以及光圈让当前环境下,相机的曝光达到一个合理的范围。拍摄物体前,先拍摄色卡。
对物体进行拍摄时,要保持刚才调节好的相机参数中途不要修改。每一张照片需要保证和另一张有20-30%的重叠区域。对焦方式自动单点对焦AF-S以拍摄物体为中心,大约每15度拍摄一张照片,蹲拍,立拍,俯拍保证各个角度都有覆盖。最后检查是否有模糊/失焦的照片,补拍。右边的图每个小点代表相机位置。
对于一些高大的建筑,可以借助无人机来拍摄高处。 这座教堂是位于佘山顶上的教堂, 我们借助无人机一共拍摄了2000多张各个角度的照片进行还原。
色卡校色:为什么要校色?相机不同,照片颜色不同,需要还原真实。对拍摄色卡的RAW格式照片校色,对其颜色,白平衡,曝光这三项进行校准,生成颜色配置文件。并使用配置文件,对一系列照片进行批量的校色,
3D模型生成。主要使用软件:Reality capture、Photoscan。输入:校色完成的照片。输出:高模,顶点色,颜色贴图。(高模的面数需要限制,不然可能打不开3000w左右)
高模生成结束以后,由于它的面数非常高,模型复杂程度从数百万到数千万。我们需要先优化它的面数,再Zbrush里把这个石雕的面数从800W降低到了1.4W(可以用zRemesher对拓扑做一次优化)。
优化完面数的模型导入Maya/Max进行拓扑修正和UV展开,为之后的贴图烘培做准备。
之前导出的高模包含了模型和自身的颜色贴图。把这些信息以贴图的形式烘培到制作好的低模UV上。 烘培的贴图有basecolor, Tangent normal和AO贴图。
除此之外,我们PBR管线还需要Roughness和metallic贴图。由于我们拍摄的模型都是粗糙的非金属模型,可以用。用basecolor 和 normalmap推算出大致的roughness。
并且把Metallic和Roughness以及AO贴图,分别存到一张贴图的RGB通道里,以减少材质里使用的贴图数量。
最后把低模,和烘培好的贴图一起导入引擎,把贴图输入到材质的相应通道,并赋予模型就大功告成了。 以上就是大致的工作流程。
这是一些我们用扫描还原到引擎的模型展示。包含航拍建筑,古建筑,石雕,树木,石头,砖墙,甚至时一些人为去除高光的车辆模型。都可以采用Photogrammetry去还原他们的真实面貌。 没时间?没预算?但是没有问题! 这是我们的一次拍摄和制作经历。实际上期间遇到了非常多的问题。 我们的目标是一个废弃的厂房。事先我们在网上寻找合适的目标,并最终选定了一个即将要拆除的工厂。我们在地图上大致上找了一些参考,并且有一些简单的拍摄规划,但由于厂区是不对外开放的,谁也不知道里面究竟如何,我们能否取到有用的素材。
最终,在有限的经费和协商下,我们有了一天进场拍摄的机会。 我们按照事先的分配对工厂的各个角落进行取材,最终收集到了大约5000多张照片,并从中筛选出大约69个可还原的模型。但是,我们只有4位美术师,由于年底,每周只能工作3-5小时,而我们的deadline 是2个月后。
而困扰我们的另一个问题是,由于事先没有机会实地考察,有一些规划要拍摄的东西和实际上看到的有较大的出入,有些无法取景。这就让我们反思了关卡的制作流程。 普通来说,一个关卡的制作可以概括为“原画设计-白盒制作-模型制作-白盒替换”,基本上要做的东西都是实现规划好的,模型也是人工制作的。
但对我们来说,即使制作了白盒模型,实地也不一定可以取材到合适的模型去替换。 我们所拥有的是大量的实际扫描数据。这就让我么重新指定了计划,从现有的模型里选择合适的来搭建关卡。
看到这个让我们非常绝望,以我们的预算和人力,是不可能在短时间内把所有的模型都按照之前介绍的流程做好,并导入引擎,交给关卡设计师的。
所以我们重新定义了美术制作管线。我们必须要自动化处理大部分模型,把这部分自动处理的模型定义为placeholder,可以作为预览或者远景。先交给场景搭建,并且在有限的人力下,合理选择模型做人工优化处理。
我们加入了houdini自动生成管线,对生成的超高模进行自动减面和拓扑。
自动进行uv展开,并且烘培贴图,以及自动lod的制作。不得不说,自动处理的模型和人工对比,大部分是有缺陷的,比如拓扑和uv。但是也有一部分形状较简单的是可以处理较好的,比如这个物件。
之前说的roughness贴图生成和贴图合并,我们使用了substance designer对他们进行处理。
但这样就可以了吗?不,外拍的时候由于天气原因,照片上多少都会带有一些阴影,或者有些是背光的面,会比较暗。而我们的base color不可以包含阴影。所以我们也开发了工具并在自动化流程里也加入了对basecolor的去阴影处理。
最终我们在3天内自动生成所有place holder模型,供场景美术进行关卡摆放设计,并把时间留给后续逐步人工优化近处的物件。
这是引擎里截取的场景的一些角落。借助delight工具对贴图进行了去光照处理,我们可以给场景加入一些时间上的变化。
Delight工具介绍 大家好,我叫李奇,来自NExT工作室。刚才金力已经大致介绍了一下我们工作室Photogrammetry的内容生产管线,接下来由我介绍一下,我们在去光照上做的工作。
那为什么要去光照呢?我们用来建模的照片,都是在外面不同的环境下拍摄的,在不同的光照环境下,照片带有外界的各种光照信息,生成的三维模型的贴图也是由多张照片采集而来的平均色。
我们有时候无法选择在什么条件下完成模型拍摄任务,就像这个模型一样,完成建模以后效果是这样子的,是有影子的。 导入引擎中的使用的话,肯定在会在不同环境光照下使用。必须得想办法把光照给去除,这样才可以重新在引擎中打光。 所以我们提出了一个可以去掉太阳光影子的方案。
首先我们需要准备一些贴图数据。因为我们在工具中不会直接使用模型数据,所以我们会由模型生成位置贴图和法线贴图来使用。可以使用高模烘焙,也可以使用简单的 Shader 来转写。
下一步,我们需要在模型视图上指定两个点,我们可以通过这两个点的位置简单的算出直射光的方向。
有了直射光方向,我们便可以渲染模型自身的Shadow Map。然后在通过跟刚才生成贴图,一样的方式生成 Shadow Mask。这样我们便得到了哪里处于影子中的信息。
我们需要申请两张五维的 LUT,以贴图读取的位置和法线经纬度为坐标,将亮暗面的颜色累加到对应的位置上,得到亮面和暗面的平均色信息。
然后为 LUT 生成 Mips。将相邻的像素的颜色和权重加起来,获得更为平均的颜色信息。这样可以保证采样时每一个坐标都会有采样值可用。
以两张 LUT 在相同坐标下,查询到的颜色值计算出亮度差,然后直接应用到漫反射贴图上,即可得到去光照的结果。
为了改善结果,还要为LUT采样实现线性插值来改善效果。左边为未插值的结果,右边为实现插值后的结果,可见效果有明显改善。
完成去光照以后,模型在无光模式下,渲染出来是这样子的。左边是未去光照的对比图。 但是在用这个方法,对一些颜色比较复杂的模型进行去光照,可能会有颜色溢出的情况,导致结果不够理想。于是我们提出了第二个方法。 首先先对影子做边缘提取,只保留位置和法线都连续的地方,这样可以避免UV接缝影响结果。
以找到的边缘作为中心,采集一定区域大小的像素的平均色,这个大小是可配置的,比如64x64,分成两暗两个部分的平均色,其中亮面部分在计算光源亮度时考虑法线方向的影响。 然后以位置为坐标采集到一张 LUT 中,这样 LUT 就保存着区域的光照信息,再对漫反射贴图的每一个对应的点采样就可以拿到对应的亮度差,应用到暗面像素上即可去光照。
这是去光照以后的结果,左边为使用原始贴图的模型。
作为对比,左边是 Agisoft 工具去直射光的结果,右边是我们的结果。 我们还实现了去环境光遮蔽的功能,算法主要参考自 Unity,主要原理是收集平均色,然后通过多次 LUT 采集和采样让整体颜色和亮度都更接近平均值。
我们将整套去光照流程,包括直射光的指定和贴图的生成也都集成在 Houdini 中,与之前介绍的整个自动处理管线也很好的结合在一起。 来源:腾讯游戏学院 原文:https://mp.weixin.qq.com/s/34_a59v08KXTiyImYE9P9Q |
编后语:关于《TGDC | 让现实更理想·室外3D大场景重建》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《自制豆浆豆渣能吃吗蚂蚁庄园 蚂蚁庄园自制豆浆答案[多图]》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器