游戏快报

天美最难技术美术攻坚战:3年解决3座大山

天美最难技术美术攻坚战:3年解决3座大山

在强调工业化的当下,越来越多游戏公司意识到了技术美术(TA)的重要。

《王者荣耀》对此恐怕深有感触。以王者的体量,任何底层改动都将牵扯无数逻辑。但在最近几年,它的美术品质有了质的飞跃。在这一过程中,整个团队对于技术美术的重视和扶持相当关键。

前一段时间,我们对《王者荣耀》美术团队做了多轮采访。在这个系列的最后一篇文章,我们聊了聊王者的技术美术变革。那些正在升级研发管线,探索工业化生产流程的团队,或许可以从这场持续数年的攻坚战中学到一些经验。

01  变革的三座大山

刚刚上线时,《王者荣耀》在3D美术方面的亮点并不多。 在那个玩法还没被时代验证的阶段,能实现5v5实时对战都已经相当难得,大家几乎没有余力追求更极致的品质。在相当长的一段时间里,整个团队甚至只有一名TA。 

Drawing 2.png早期版本的美术效果

2019-2020年,面对行业变化和用户需求的提升,王者团队扩充了TA团队,准备把品质提升到新的高度。受限于品类,他们并没有一上来就追求最极致的美术效果,而是先瞄准了PBR这道难关。 可能有人要问了:PBR都流行多少年了,这有什么难的?但情况远比想象中复杂,在种种因素的制约之下,摆在他们面前的有三座大山: 

第一,革新制作流程的生产风险。虽然王者在迭代时也曾加入了一些PBR的代码,但团队依旧保持了之前的制作思路,大量工作都在依赖手绘贴图。如何让团队有意愿,有能力接受整套PBR流程? 

第二,重构渲染模块的性能风险。王者上线已经太久。为了降低迭代的风险,之前团队往往会在核心框架的基础上进行迭代。可随着时间的推移,迭代次数越来越多,代码越来越复杂,在旧框架上进行「修补」的成本也越来越高。想解决这个问题,必须重构整个渲染模块,「开着飞机换引擎」;

 第三,重构美术效果的风险。面对海量用户,团队必须考虑大家对于美术效果翻新的接受程度。而且就算实现了非常极限的美术细节,那些中低端的机型又该怎么办?万一好心办了坏事儿,大家可输不起。 这三座大山的存在,几乎让王者成了业界最复杂,也最难搞的项目之一。TA团队陷入了窘境。

02  重新优化PBR:如何替代光线追踪?

经过反复推敲,TA团队决定在推进流程变革之前,先帮团队树立信心。 PBR的全称是「Physically-Based Rendering」,即「基于物理的渲染」。“比如做一个纸杯,以前它的质感、立体感全部要靠手绘。而PBR是要告诉计算机,这个杯子是用纸做的,纸的物理属性是什么,光照强度又是多少……最后让计算机给出效果。”
和高质量手绘贴图相比,PBR的流程更清晰,更容易实现标准化的批量生产,调整起来更加迅速。而且它还能融入动态光影效果和叙事性光照,实现各种特殊质感。更不用说一旦打通这条科技树,HDR lighting、HDR Display、DBR甚至NPR等先进技术的前景都摆在眼前。 但PBR只是一种方法,它并不能100%保证品质。“很多项目都讲自己用了PBR,但你看到画面之后就会有些怀疑……”而且在过去几年,王者的美术团队已经把贴图画到了极致。如果直接替换,素材的质量反而还会降低。 于是TA团队开始研究目前移动设备流行PBR方案的硬伤,最终他们把问题聚焦到了局部散射/反射和全局光照上面。 举个例子,同样是做一枚金镯子的时候,程序员会把它周围的环境贴图染成金黄色,贴在镯子上,实现金灿灿的反光效果。但美术会说:这个效果还差点儿意思。因为在真实环境中,镯子的光不只会反射到环境当中,还会在镯子的凹陷处和环境之间「弹弹乐」,变得更加好看。

图片 4.pngPhoto by LUM3N on Unsplash

如果是主机游戏,这个问题可以通过屏幕空间光线追踪来修复。但在移动设备上面,这种需要在内存里做大量操作的技术特性非常消耗性能,往往会被阉割——有追求的美术团队肯定不会支持这种粗暴的阉割行为。 那该如何让像素感知到周围的几何信息,并表现出相应的颜色?TA团队想了一套方案:把周围环境的情况,即可见性(Visibillity)全部编码到像素中,以此计算光线要在本体反射多少次才会追踪到环境,又有多少光照来自外界环境的反射;并对反射亮度进行色彩校正,最后再把降维之后的数据呈现出来。其中的原理,有些类似能在不同视角下,能够呈现出不同图案的防伪镭射卡片。 

Drawing 4.png素材来自COD(链接见文末)

与此同时,他们还引入了更多的调节参数。比如金子的入射率大于反射率,会吸收场景中的其他波长,把它们都转化为金色,这涉及到自遮挡和反射的强度。而在工具当中,只要提高「反射到自身的亮度矫正」,就可以做出类似的效果。“比如现在我们能实现的玫瑰金,以前打死都做不出来。”

图片 13.png默认材质输入技术下渲染的不同粗糙度的玫瑰金材质

图片 6.png使用AO贴图技术渲染的不同粗糙度的玫瑰金材质

图片 2.png通过这项技术渲染的不同粗糙度的玫瑰金材质

最后,他们又在团队内部成立了美术专家组(TAA),先用成品为大家演示新技术的效果,凝聚共识,再推动技术和流程的改革。 

TA团队称,他们差不多花费了一年的时间,才证明PBR的细节也能不比手绘逊色。而只有整个王者团队都达成了这样的共识,一切变革才能实现。

03  逆向渲染:运用AI,从结果倒推过程

可在采用了新的工作流程之后,团队又在重构渲染之后的美术效果上遇到了问题。

PBR向来牵一发而动全身。在一次升级时,TA团队曾改动了一个渲染公式,让它更符合物理规则。“从正确性来讲,它肯定更正确了。从艺术性来讲,两个灯光确实有了微妙的变化,你很难说出哪个更好。”然而玩家对结果并不买账,因为光影变化之后,角色的脸和以前看起来不一样。

如果类似的问题得不到解决,渲染模块的重构将举步维艰。如何让角色关键部位的观感保持不变?最终,他们决定采用「逆向渲染」的方案。

在传统的PBR流程当中,美术要根据PBR的算法,绘制贴图,调节参数,最终渲染出自己想要的图形。但逆向渲染允许美术先给出想要的贴图,再由程序自行寻找合适的算法。这项方案背后是一系列的AI技术,“类似于让人工智能下围棋,只是把棋盘换成了几千x几千的贴图,RGB三个通道,和256种不同的组合,完全匹配就算你赢。”

而在硬件优化方面,「逆向渲染」一样有应用的空间。“A手机内存特别快,但芯片计算不太行,我们就把计算转移到内存来做;B手机内存不行,但芯片特别NB,我们就用压缩解压缩的方式代替内存,最终实现一样的效果。”

在这套方案的帮助下,不管渲染算法如何变化,系统都能模拟之前的渲染风格。美术团队在适应PBR流程的时候,也有了另一种解决方案。这让王者的游戏资产变得更加稳定,也让它度过了「开着飞机换引擎」的阶段。

Drawing 6.png

04  从PBR到「DBR」:基于数据的渲染

在通过各种技术手段提升了美术效果之后,王者团队要面对的最后一关是优化。 大多数游戏的优化方案很好理解:配置分为高中低三档,最高档可以力场全开,HDR、抗锯齿、高帧率、阴影样样都有;而如果设备性能不足,那就把这些特效关掉几个。换句话说,研发团队付出的努力,最终只会变成属于少数玩家的福利。 但TA团队放弃了这个方案。经过反复尝试,他们决定拆分资源的制作与分发,让PBR只停留在制作阶段,将分发交给「DBR」,即「基于数据的渲染」来处理。 解释起来,就是在资源制作阶段,团队依然会遵循PBR的流程;但在分发阶段,团队会根据不同手机的承受范围,把PBR效果的数据重新编码,再通过取平均、求特征等机器学习的方法来降维合并数据,把它们在手机端解码呈现出来。 在这套逻辑下,团队不需要考虑中低端手机跑渲染的能力,只需要计算机器承受数据的上限。而且所有手机都能保存元素、色彩、质感等艺术构成,只是没有那么高的精度。“就像在手机上看电影级画质的视频。”

Drawing 7.png

除了提升中低端机型的体验,DBR还进一步优化了美术团队的工作流程。以前为了做王者峡谷的地图,项目要分出三个小组:最高档的画质可以全程PBR,中低档画质则要用手绘贴图,甚至更古老的方式来保证效果。只要地图出现一点改动,三个组就要同时返工。而现在,所有人都可以为最好的效果努力。 不过对于美术团队来说,推进DBR的阻力还有时间。以往大家只要把贴图画好,就可以直接打包进游戏看效果。可现在每次大家调完参数,还需要程序经手才能放进游戏。获得反馈的时间从以前的两三个小时变成了一两天。最终TA团队下了血本,把流程重新压缩到了几个小时的程度,终于让大家重新获得了接近原来的体验。 TA团队表示,DBR彻底改变了王者的优化效果。“现在我们只有最高配是全套PBR,其他配置的性能可以全拿去支撑三角形。它的几何复杂度是以前的几倍,但性能开销可能只要60%-70%。” 到了这里,TA团队终于解决了曾经摆在自己面前的三座大山。而《王者荣耀》3.0版本的美术品质,也终于帮助团队度过了技术焦虑期,达到了他们从未实现过的程度。 Drawing 8.png

05  结语

当然,上面介绍的这些技术,只是王者TA团队的一部分成果。可微渲染、HDR优化……他们还在尝试更多的东西,继续优化整个团队的工作流程,实现更好的美术效果。
“一方面我们的分工要越来越细,比如现在有的同事只负责「布料解算」模块;另一方面,我们的综合思维能力也要更强。只有精准定位问题,协调各个部门的需求,用工具优化流程,才能让技术团队更好地把问题狙击掉。我们的存在就是降低行业的准入门槛,让专家能做自己更擅长的事儿。”
而在王者引入东方美学的理念之后,TA团队也有了更大的野心。在未来,他们想把「意境」用技术的手段实现出来,这需要一个算力更强的全息系统。

Drawing 9.png

“在技术发展到一定程度之前,渲染讲究的都是更直接的关联。比如太阳光照射到我,我被照亮了,有个影子,仅此而已。但如果我们要追求意境,可能就要更含蓄一点:太阳不是直接的太阳,而是被云层遮挡了一半的太阳;被照射的人也不是直接的人,而被笼罩在云雾之中。
想要达成这种效果,需要大量的算法和算力支持。团队不仅要有全局渲染的数据,让画面足够真实、有内容,让场景能激活用户的神经;同时还要隐藏一些东西,比如隐去一个点光源,发散成墙大的光幕,再算出面光源阴影,微弱的光照起伏、一些流体的雾……这样的环境再搭配中国特有的元素,以及群青、品红等特有的色彩构成,最终给人的体验,才是东方美学。”

Drawing 10.png

TA团队告诉我,技术美术的研究工作有点儿「大道至简」。最终解决问题的,可能只有5行代码;但为了明确问题,可能几名资深的同事要付出3年的努力:“这背后是整个美术团队的支持,以及对新技术试错的耐心。毕竟到了目前这个阶段,已经没有先例可循,只能摸着石头过河。”
在这些过程中,唯一确定的是一条工作准则:不急功近利,不找捷径,永远要去克服最关键的技术问题。
举个例子,如果想实现通透的角色脸部效果,最直接的方法就是攻克光照反射和透射。如果只是追求贴图的通透,研发要用更多细节遮盖穿帮;如果用自发光的方式模拟透光的效果,那天黑之后这张脸就会变成灯泡。想解决这个问题,又要让发光和其他条件建立联系……
“遇到困难的时候,人往往会沉迷于捷径。但每次绕开一个问题,就会遇到更多问题,最终迷失到众多的分支里。做游戏应该是一件很纯粹的事情,我们就是要刚正面。”

COD图片素材来源:

https://www.activision.com/cdn/research/Precomputed_Lighting_in_CoD_IW.pptx