查看原文
其他

AI生成游戏中基于物理的渲染(PBR)贴图探索

Xurong 腾讯游戏学堂 2023-04-07
文丨Xurong
腾讯互动娱乐 技术美术

| 导语

AI绘图进展的如火如荼,从刚开始的“AI绘画也就图一乐”,发展到如今质量越来越好、效果越来越稳定,各种特性模型、辅助插件层出不穷,其进展速度可以用日新月异来形容。在这个时间节点做的任何AI相关调研,恐怕都难以逃脱三五个月后便彻底过气的命运。在此前提下,本文基于现在的AI发展情况,尽可能地概述目前使用AI生成PBR材质贴图的可行性,以及对未来的展望。


虽然目前PBR材质贴图已经有了很多或收费或免费的库,可供美术进行购买使用,但终归数量有限,并且检索困难。即便找到了效果相近但不完全合适的贴图,如果不是提供了源文件的程序化生成贴图,想要对现有效果进行轻微的变体修改也很困难。因而如果能使用AI模型的辅助,能够从文字描述中生成想要的PBR无缝贴图,并且生成多种变体,便能够给美术提供更多选择。然而,时下大火的几个AI绘图模型主要还是以生成颜色图片为主,为了得到PBR贴图则需要借助其他工具进一步进行处理。当然,也有人将这两步结合起来,制作了可在一条流水线上进行ai制作PBR贴图的工具。本文将逐一对其进行说明。


一. Ai生成无缝颜色贴图


第一步AI生成的颜色贴图是后续PBR贴图生成的参考,一张高质量可用的颜色贴图应该具备以下特征:


•  照片级真实。本文介绍单张贴图生成PBR贴图的AI模型,大多还是以真实或接近真实的贴图作为训练样本的。虽然具有手绘风格的颜色图片有时也可以得到很好的PBR贴图结果,但是不稳定。


•  无缝贴图。无缝贴图的适用性更广。


•  无透视。理想是无透视视角下的俯视特写图。


•  少光影。Base Color贴图中如果还存在影子一类的信息,会导致错误的渲染结果。虽然可以通过后期处理消除这些光影,但是目前这一处理能力也是有限的,过度地处理也会破坏本身基础的颜色。但是如果完全没有光影也是不行的,后期无法从图中得到法线粗糙度等信息。


从模型上来说,目前流行的AI绘图模型:MidJourney,Dall-E,StableDiffusion都可以生成类似base color贴图的效果,如图1所示。


[ 图1 从左自右,依次为MidJourney、Dall-E和Stable-Diffusion v1.5的生成结果。自上到下三排分别生成的是:树皮、覆盖着苔藓的鹅卵石、羊毛纺织物。]


从图片质量和稳定性上来说,MidJourney和Dall-E表现最好,但这两者也比较容易出现一些类似背景虚化、镜头眩光之类的后处理效果和镜头畸变。MidJourney和Stable-Diffusion都有显式的直接生成无缝贴图的选项(MidJourney的—tile指令和Stable-Diffusion的Tilling选项),但Dall-E目前则需要通过涂抹等手段生成无缝贴图,相对来说有点麻烦。


但是以上三个模型本身不是为了生成贴图而训练的,因而会概率出现视角不够平铺、带有不期望的拼贴、或结果模糊等问题,这也催生出专门为生产无缝贴图而设计的AI模型。


AI绘图的生成结果往往会受到训练数据的影响,因而有人专门将PBR材质的贴图作为训练样本对模型进行训练,如DreamTexture[https://huggingface.co/dream-textures/texture-diffusion]。DreamTexture基于Sable-Diffusion v2进行训练,训练数据是来自Poly Haven[https://polyhaven.com/]的278张cc0的贴图。其生成的贴图基本不会出现不平铺或者有缝隙的情况,并且很少有光影信息,更接近PBR中的base color贴图而不是照片。但颜色太平也可能会导致没法使用它在下一步生成具有很多细节的法线贴图。另外DreamTexture所基于的Stable Diffusion V2为了规避版权问题,替换了公共的数据进行训练,整体效果其实不如Stable Diffusion V1.5,因而Dream Texture生成的整体图片质量也略差。


Material Stable Diffusion[https://replicate.com/tommoore515/material_stable_diffusion?prediction=v2dsko5lc5aglm4osf4tvvsfsm]也是专门以生成无缝贴图为目的而训练的模型。这一模型是Stable Diffusion v1.4 的分支,其部分输出的结果非常接近Stable Diffusion v1.4生成无缝贴图的结果,但是同样关键词和随机数下生成图的对比度和清晰度更高,不易出现奇怪拼接现象,作为贴图质量更高。


以部分关键词为例,不同模型生成的效果如图 2所示。


[ 图2 从左到右,依次为Stable-Diffusion v1.5、DreamTexture和Material Stable Diffusion的生成结果,自上而下关键词分别为:干裂的泥地,树皮,纺织物。]


总体来看,对于普通材质的生成,效果是Material Stable Diffusion> Stable-Diffusion v1.5>DreamTexture。


AI生成贴图的优势在于可以根据关键词短时间内生成大量的不同效果,对于常见的材质如木材、地表、石头、纺织物,都可以通过几个关键字快速生成大概效果,并且满足无缝、平铺、光照均匀等条件。除了常见的自然材质,也可以通过关键词引导AI绘制出具有AI特色的具有堆砌细节和复杂结构的人造材质,如图3所示。对于有参考图,但是参考图本身不是无缝的或者有轻微水印的,也可以通过AI图生图的形式快速处理成可用的无缝贴图,并生成大量变体,供美术使用,如图4所示。


[ 图3 以SD为例生成的大量贴图结果 ]


[ 图4 在有参考图的情况下利用Stable Diffusion v1.5生成大量变体无缝贴图。图为有青苔的悬崖岩壁参考(上图)和AI生成的无缝贴图(下图) ]


AI生成贴图的局限性在于其生成是不稳定的,并不是生成的每张图都可用。生成结果有可能细节处不符合现实逻辑,或者概率会生成有奇怪拼贴的素材,不适合作为颜色贴图使用。另外,AI能生成什么结果和其使用的训练数据非常相关,对于复合性材质,或者具有设计感的图像,仅使用关键字的情况下ai不一定能够生成。例如,“纳米合金和塑料嵌合的太空舱门板,布满划痕和喷绘”,或者“一部分生满铜锈,一部分涂满红漆的铜板,上面装饰有中式圆形门钉”,得到的结果可能不符合设计师心中理想需求。如图5-1所示。当然这可能和使用的关键词有关,往往使用以图片作为参考进行生成会更好,甚至可以注入自己训练的有特殊风格和倾向的lora作为辅助,此处可能需要更多尝试。另外AI生成的贴图对于一些要求规整的效果,如地砖、蜂巢等效果,可能会出现不符合预期的形状畸变,如图 5-2所示。


[ 图5-1 AI生成结果不佳的示意 ]



[ 图5-2 以六边形砖块地板为主要关键词得到的结果,AI生成的结果容易出现部分地砖变形的情况 ]


二. 根据单张贴图生成PBR贴图


现在我们已经通过AI为我们生成了合适的颜色贴图,由于AI生成图目前的限制,暂时不方便生成同样材质多灯光下的可信结果,因为需要根据单张颜色图生成PBR贴图。根据单张贴图生成PBR贴图需要工具具备:消除输入图片光照(delighting)以作为BaseColor,根据输入图片生成其他PBR贴图,对生成的贴图进行无缝处理的功能。本文将介绍两个可以满足以上需求的工具,Materialize和Adobe Sampler。


Materialize是一个用于从图像中创建可用于游戏的材质独立工具。既可以输入单张的图像进行生成,也可以输入已有的纹理进行二次处理修改。Uncharted 1 和2中大部分的环境贴图都由其生成。


[ 图6 Materialize界面 ]


将AI生成图像导入该软件后,会有一个默认的生成效果,但是这个效果不一定是美术需要的,因而Materialize提供了大量的丰富参数,能够对这个效果进行调整和修改。所以Materialize是一个可调控性非常自由的软件,也因如此导致该软件的入门需要一定的学习成本,调节也需要一定的人力。


Adobe Sampler[https://www.adobe.com/hk_en/products/substance3d-sampler.html]具有同样的将单张真实世界的图片转为3d材质的功能,但是更加自动化,其通过AI生成的默认结果往往就具有很好的效果。具备一定的参数可供二次修改生成的PBR贴图,但和Materialize相比比较有限。


[ 图7 Adobe Sampler界面 ]


Sampler的默认效果更加好,Materialize则基本都需要手动调整。Materialize的Delight效果相比Sampler更强,并且可以通过调节生成金属度贴图;Sampler的自动生成中是没有金属度贴图这一项的。两个软件在处理无缝贴图上的方法不太一样,等等。总结来说,两者从最终生成结果来看,没有明显的优劣差别,如图8所示,但Sampler生产效率更高。


[ 图8 Materialize和Sampler生成PBR贴图对比 ]


有了这一工具和上一步AI生成的无缝贴图,便可以生成PBR材质贴图。本文在UE4引擎中展示了他们生成材质的渲染结果。


[ 视频1 Materialize和Sampler生成PBR材质渲染对比 ]


Sampler背后的先进的机器学习技术是使其材质生成过程自动化、表现质量稳定的关键。简单了解其算法可以使我们更清楚如何利用好这一工具[1]:


•  自然光下生成结果更好。该AI模型的目的是从单张照片中还原室外的PBR材质,不同于其他一些算法,其输入的训练数据为闪光灯下捕获的图片,该模型使用的输入图片的渲染灯光环境为HDR贴图营造的环境光照,目的是为了模拟室外不同时刻由天空和太阳构成的自然光。因此,在使用Sampler时输入自然光照下的图片生成效果更好,对于AI生成的图片则可以增加“室外自然光”的关键词。完全没有光影的图片无法在这一步预测得到法线以及其他PBR贴图。


•  并不是所有的PBR贴图都是由神经网络预测生成的。在Sampler中输入一张图片(真实照片),该神经网络模型实际上预测得到的是一张没有光影信息的Albedo图和一张法线图。其他PBR贴图由这两张贴图计算得到:高度图是由法线图计算得到的;AO是由HBAO(Image-Space Horizon-Based Ambient Occlusion)算法计算得来的;粗糙度贴图是根据法线图近似模拟的,这里用到的是TA常会用到的一个trick,即认为在局部结构上,突出的部分具有更小的粗糙度,而AO的部分、即凹陷的部分粗糙度比较大。这一办法虽然可以得到粗糙度的灰度图,但是不能得知粗糙度的具体范围,因而算法将这一粗糙度贴图向中性灰附近靠近,同时开放给用户一个可以调节粗糙度范围的参数。因而,该自动生成粗糙度贴图,往往需要用户对整体粗糙度进行二次调整。


[ 图 8 算法预测的贴图和Ground truth对比 ]


•  这一算法在最初设计的时候就没有考虑金属度贴图的生成。因此Sampler也是不会自动生成金属度贴图的。虽然软件中有增加金属度的功能,但是主要是以预设为主,不会依据输入图像生成,不一定可以得到期望中的结果。因而如果想要生成一些金属材质的贴图,金属度贴图要么选择纯色,要么可以一键发送到同为Adobe全家桶的Substance Designer,再通过一些Trick进行手工处理得到。


•  该算法去除阴影的能力是有限的。尽管可以通过调节参数控制去除阴影的程度,但得到的结果往往不尽如人意。所以尽量不要输入有很强阴影的图,生成的Albedo图很有可能不符合标准。


[ 图 9 Sampler去除图片光影信息的能力是有限的。左图为输入图像,右图为生成的Albedo图,图中的蓝色阴影不应该出现。]


更多的Sampler生成PBR渲染结果如下。


[ 视频2 更多Sampler生成PBR材质的渲染结果,颜色贴图由Stable Diffusion生成。]


三、合二为一的工具流


上文已经描述了这一流程的可行性,如果能将这两个步骤整合为一个工具,自然会大大提高生产的效率。


3.1 Poly


Search 1000s of free seamless HD PBR textures | Poly: AI Texture Engine (withpoly.com)[https://withpoly.com/browse/textures]


[ 图 10 Poly网站页面 ]


这是可以一步完成AI材质生成的网站,同时网站上还有很多AI已经生成好的材质可以免费下载。目前该网站基础功能免费,进阶功能需要开通会员。


从AI生成材质的质量和多样性来说,对于普通材质都有比较好的生成效果,并且覆盖的范围比较广。由于整个功能都不是开源的,创作者也没有提及很多关于这个产品制作的思路,因此只能大概得知其使用的也是扩散模型,除此之外的信息就很少了。就个人使用感上来说要比StableDiffusion稳定一点。


[ 图 11 Poly网站上生成树皮、土壤、纺织物和山岩的颜色贴图 ]


对于规则的物体虽然其网站上有比较好的生成的效果示例,但自己去生成的时候还是会概率得到不规则的图案。


[ 图12 以六边形砖块地板为主要关键词得到的结果。虽然结果相较部分AI模型更加稳定,但也会出现部分形状变形或模糊的情况。]


PBR贴图的生成也比较稳定,不会出现生成的PBR贴图和材质完全不匹配的情况。但网站上没法对生成的PBR贴图进行二次调整,例如修改法线强度或者粗糙度,需要下载下来再使用工具进行修改;同样无法生成有灰度的金属度贴图,金属度贴图只能是纯黑或者纯白。将Poly网站上生成的颜色贴图导入Sampler生成的PBR贴图,和Poly上生成PBR贴图对比,材质渲染结果在视觉效果上没有太大的差别。Poly默认生成的法线和粗糙度可能会更平,AO灰部更多,但最终整体表现上差别不大。


[ 图 13 Poly和Sampler生成PBR贴图的区别 ]


总体来说这是一个非常不错的产品,网站的形式就大大降低了用户的使用难度,另外一键式生成的形式也节省了部分人力。网站上提供了大量已经生成的PBR材质,可以作为关键词参考或者直接下载。对于AI材质的生成,该网站的生成结果也算是比较稳定,质量也在中上水平。除了生成AI材质,网站本身带一些AI提升分辨率、创建无缝贴图等功能。缺点是由于AI不开源,无法在其基础上使用自己训练的数据辅助生成特定图像,另外目前网站上可供调整的部分比较少。


3.2 DT2DB Bridge


DT2DB Bridge是一个基于blender开发的免费插件,其主要作用是作为一个桥梁联通了同为blender插件的DreamTexture和DeepBump。DreamTexture是一个在Blender中使用AI模型绘画的插件,它可以选择多种AI模型进行绘制,如常用的stable diffusion,上文提到的专门为生成贴图Dream Texture,以及大量的社区提供的AI模型。DeepBump则是一个基于机器学习从照片中重建法线的插件,它的训练数据是真实世界照片和程序材质渲染,但在少数情况下,对于手绘贴图也能有比较好的法线生成表现,它使用的网络架构和上文提到的Sampler一样,是U-Net。DT2DB Bridge可以联动这两个插件的功能,从而实现在Blender中一键生成PBR材质,并且在Blender中预览渲染结果的功能。


[ 图 14 DT2DB Bridge 工作界面 ]


DT2DB Bridge的优点在于设计非常人性化,一键生成的操作本身就节省了很多时间,在关键词方面还设计了联想词功能,方便用户更准确地描述想要的效果。设计了Beautify Tag,可以将一些常用的美化关键词放入该队列,输入关键词时就可以自动带上这个Tag里的所有关键词,无需二次编辑。和DreamTexture联动也意味着可以选择不同AI模型加入这个流程中尝试结果,自由性高。


缺点在于这个PBR贴图生成实际只有法线,对base color没有delight的功能,粗糙度和金属度通过color ramp来实现,这个方式是比较粗暴的。当然也可以在Blender的shader界面中通过节点编辑,参考Sampler中实现方式,通过对法线进行二次计算得到粗糙度和AO等。但目前来看,这个工具的完成度还有待提升。


总结

目前AI生成PBR贴图已经可以看到比较好的效果,可以初步投入到设计甚至生产中,但依然有很多可以提升的方面。比如,设计操作更加人性化,编辑功能更加灵活的生成工具,使其可以一键生成PBR贴图的同时,也能提供细节的修改:例如已经生成了我需求的地表材质,是否可以在此基础之上再加入落叶等元素,而不改动已有结果。针对材质贴图所做训练的AI应扩充学习的数据库,也可以覆盖更多材质需求,像材质中常用的做旧、磨损、抛光等概念,也应加入到这种专门的AI训练集中,方便美术操作。对于PBR贴图的生成,目前的AI模型大部分都只对非金属表现良好,对材质金属度的还原则比较空白;另外对于一些特殊材质,如次表面散射、各向异性、自发光等材质,如何去通过单张图片或者少量AI生成图预测其散射相关参数、各向异性参数或者生成自发光贴图,也都是未来可以期待的方向。


[1]Martin, Rosalie, et al. "MaterIA: Single Image High‐Resolution Material Capture in the Wild." Computer Graphics Forum. Vol. 41. No. 2. 2022.


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存