光照在游戏开发中的关键作用:与引擎工程师的深度对话

发表时间: 2023-03-01 12:19


为了一个更“真实”的虚拟世界。


作为近期的热门大作,《原子之心》在发售前曾多次宣传将采用“实时光线追踪”技术,以达到更佳的画面表现效果。可到了游戏正式面世时,开发者却临阵宣布取消了“光追”,只说或许会在将来的版本补丁中添加。


这样在最后关头“放鸽子”的举动并没有招来什么指责,因为玩家们在实际体验后觉得游戏运用传统光栅渲染做出的光线表现依然惊艳,对于中端机型的运行优化也相当不错。


在光线反射表现下“光洁如镜”的会场大厅令许多玩家不由自主地伫立于此



这让不少玩家对俄罗斯游戏“粗糙”的刻板印象产生了改观,也再次证明了优秀的光照表现能大幅提升游戏的整体视效,问题就在于如何达成效果与硬件设备之间的平衡。


其实在国内,也有开发者致力于在移动端、网页端上实现更好的光照表现效果,而且是从“游戏引擎”这样的工具层面着手,并一直在取得不错的进展。


国产游戏引擎Cocos在最近更新了3.7版本,跨上的新台阶就是添加了对于“光照探针”+“反射探针”等更先进的渲染特性的完善支持,这意味着使用Cocos的游戏开发者如今能更便捷地还原出自然真实的光影效果了。


与此同时,引擎的开发人员也亲自下场,用自家引擎和编辑器制作了一个名为“赛博朋克”的游戏Demo,并随之推出了3.7.1的版本更新。


以此为契机,我们也和Cocos的开发团队聊了聊:为什么“光照效果”对于游戏行业如此重要,以及作为引擎的开发者,在亲身体验和制作游戏Demo时,关注点会有什么不同。


1


此前我们也介绍过Cocos的发展史,它曾是国内外重要的2D手游开发引擎之一,全球占据过超20%的市场份额,可惜由于3D化转型的起步晚,陷入了较为被动的局面。


经过彻底推翻重做,Cocos Creator在前几个版本就已经成为了一个可以基本满足移动端3D游戏制作需求的引擎,目前则在不断丰富更细化的功能,协助开发者在相对低算力的平台上挑战制作更重度的游戏。


Cocos本身有着稳定的用户基础,是国内移动端、小程序等诸多轻量级应用的首选开发引擎,像是去年国内爆火的《羊了个羊》就是用Cocos制作出来的游戏。


Cocos引擎支撑了众多现象级游戏



在这样的基础上,Cocos的开发者们也同样在为行业内最前沿的课题添砖加瓦,也就是探索“如何在虚拟世界中还原自然的光照效果”。


在Cocos的开发者看来:“光照效果”是在虚拟世界营造“真实感”的基础,是游戏行业无法绕开的一环。


人类通常会对光线表现中“假”的部分特别敏感,所以对此的改进就是一个不断“去伪存真”的过程,而以目前的技术水平,真实世界的光线几乎需要无限的算力才可能还原,引擎开发者对此进行的模拟永无止境,因此称得上是游戏开发者们共同的终极追求。


在3.7版本中,Cocos中加入了“光照探针”功能,可以帮助开发者可以更轻松地表现出不同材质的动态物体对于环境光线的反射,还原诸如金属盔甲在运动过程中对周遭色彩的漫反射:



同时加入的“反射探针”,则是可以在场景中带有反射性质的材质上,渲染出对周边环境的实物反射,例如水面照出的倒影。



一般玩家在实际游玩的过程中未必会逐一注意到这些细节,但虚拟世界的真实感就是在这些角落里一点一滴地积攒起来的。


对于游戏引擎而言,实现这些功能既是满足本就具备这些需求的开发者,也能带动原本不拘这些小节、冲着Cocos其他方面优势而来的制作者进一步完善自己的作品。


作为一个历来以移动端优先的跨平台引擎,在添加了3.7版本的各类新光照效果后,基于Cocos制作的高画质游戏Demo仍兼顾了包括高通骁龙 835、苹果 A10 芯片这样已经有五六年历史的老芯片,能在这些设备上以30FPS 的稳定帧率运行。


此次专为Cocos新版本制作的“赛博朋克”Demo



如果说一些更主流的引擎所做的是“不计代价”追求画面表现的上限,那么Cocos更注重的就是让那些算力相对较低但覆盖面广阔的设备,仍能持续迎来画面上的提升,继续拔高行业的“下限”。


这也在一定程度上体现了“画面技术的进步不止是硬件的进步”。


2


游戏引擎行业的沟通环境有些特殊,除了少数深度合作的项目,引擎的开发者和使用者之间通常没有明确的“甲方乙方”关系,使用者在反馈相关问题时,往往会模糊自己的项目背景,只提出相当具体的疑问或需求,整个沟通过程像笼罩着一层“战争迷雾”。


对于Cocos这样的开源引擎就更是如此。很多时候团队都是在游戏公开并获得成功后,才后知后觉对方用的是自家引擎,并意识到曾经遇到的一些具体问题可能出自这个项目。


任天堂几年前推出的手游《火纹英雄》就是出自这样的情况,当时的Cocos还完全不知道任天堂选用了自家的产品,而如今,Cocos Creator已经正式成为了与任天堂官方合作的商用引擎之一。


类似的还有近期举办的第二届楼宇科技True大会,其虚拟会场True Space同样是基于Cocos制作,而在项目公开之前,Cocos这边都还不知道自己的产品已经被用作虚拟环境的搭建。


由美的楼宇科技研究院-TEAM x.y.z. 使用 Cocos Creator搭建的True Space虚拟会场



在这样的背景下,引擎的开发人员亲身体验自家引擎就显得尤为重要,由此来尽可能避免“雾里看花”的状况。


Cocos内部向来有制作与引擎版本相匹配Demo的惯例,这次的“赛博朋克”就是最新的作品,是一个可以通过键盘或虚拟摇杆进行操作的跨平台第三人称射击游戏。


以下视频来源于COCOS



这个Demo的雏形其实在2021年就已经完成,但当时Cocos的生产制作流程还不足以实现所有效果,因此直到如今才伴随着3.7.1版本正式放出,使用者现在已经能借助Cocos Creator来完全复现这个Demo,也可以免费下载源码资源对其进行编辑。


在一般玩家眼里,在2023年推出一个以“赛博朋克”为主题的游戏Demo可能显得有些“赶时髦没赶上趟”,但对于游戏引擎而言这完全是另一码事——之所以选择这样的背景来制作Demo,核心原因还是因为这样霓虹闪烁的夜间环境下包含更复杂的人工光照,也具备强烈的动态性,便于体现新版本对于光线效果的提升。


同样的,该Demo起初被设计为一个第一人称视角的游戏,但为了展现新版本在动画系统上的提升,最终改为了第三人称视角,让用户可以近距离观察自身角色,考察更多动画细节。


3.7版本Marionette 动画系统允许用户在一个动画图的基础上创建变体,使其有可能在不同的角色上重复使用同一个动画图


所谓“内行看门道”,其实游戏开发者们在尝试那些面向一般玩家的游戏Demo时,最关注的同样也是这些内容——场景的渲染表现如何,用了哪些光照算法、表面材质,动作系统如何,怎样实现场景环境和动作之间的衔接,而这一切最终又会反馈到物体表面的光照表现上,所以后者可说是一切画面表现的源头与尽头。



事实上,当“光照表现”已经成为整个行业的顶层追求之后,其推动的也早不止是游戏产业——相关渲染技术同样可被运用于动画、电影、虚拟现实等领域,也指明了显卡、芯片等硬件的发展方向,近来被提到“游戏行业的科技价值”不外如是。


3


行业开发者在看游戏作品的画面表现时,还有一大特点在于他们关注的不止是最终效果是怎样“表现”的,更重要的是其过程是怎样“实现”的。


再好的画面、再让人惊艳的光照,如果不能匹配开发者所面向的设备平台,又或者实现过程相当繁琐复杂,就都只是令人望而却步的空中花园。


Cocos3.7.1最新添加的“自定义渲染管线”,就是用来简化这些实现过程的工具,也是在整个行业中都具备前沿性的功能。Cocos 已经受邀出席今年的 GDC 大会,将通过主题演讲,重点介绍Cocos引擎如何取得极致的跨平台伸缩性。


这套系统提供了一系列适用于各种平台的 API 接口,加强了引擎本就引以为豪的“伸缩性”。这意味着项目团队可以在不同平台上自由地实现各种渲染特效,进一步降低了移动端上的开发成本,同时又能几乎“一键式”地便捷匹配到包括任天堂NS、PC桌面端在内的各种设备上。


“随插随拔”式的自定义渲染管线



这种“伸缩性”也是Cocos作为一款国产引擎,在全球市场上最具竞争力的强项,也已经促使了一批3D项目将其选用为开发引擎,像是海外热门的聊天工具Discord,在接入互动游戏时就选择了Cocos作为制作工具,并在其覆盖的多平台上展现了良好的兼容性。


Discord官方推出的即时3D互动游戏《Putt Party》



“3D化”为Cocos可制作的游戏类型带来更多可能性。


作为一款常被用于开发2D战棋游戏的引擎,在Cocos相关的技术社区里,希望Cocos能支持3D战棋游戏开发的呼声一直很高,而引擎如今的3D化程度,则已经完全能支持这类型游戏的开发,只待使用者通过实践来尝试做出类似的产品。


早在《火焰纹章》系列的前作《风花雪月》发布时,论坛里就有人尝试使用Cocos来还原出游戏里的一些功能



另一方面,在可以预见的未来,Cocos的 “伸缩性”同样也将延展到新一代的移动设备上。


尤其是在车机、XR现实扩展这些尚未标准化的平台上,Cocos跨平台的易用性已经有所体现,3D化则为 VR、AR游戏,以及车载实时导航应用的开发提供了必要条件。


Cocos也已经配置有专门的XR编辑器



接下来的日子里,Cocos团队也仍将继续细化3D游戏开发所需要的功能,涵盖从添加自带的寻路系统这样的小工具,再到支持50km²以上超大场景构建这样的底层基础,尽可能让引擎的功能走得比用户的需求更快一步。


最后,Cocos团队的技术总监Panda也与我们分享了引擎当下所取得的成果和未来的目标,以下是采访的正文:


游研社:通过一系列版本更迭,Cocos 3.7版本提供了一个相对成熟的3D工具链,如今 Cocos相对于其他同类产品在哪些方面存在优势?


Panda:Cocos目前的“轻量化”可以帮助项目团队确保低成本,“跨平台”确保触达更多种类玩家,“开源”则确保高度定制能力和项目可控性,“伸缩性”确保不同用户的体验。


Cocos 一直以来都是移动端优先的跨平台引擎,所谓“伸缩性”简单来说就是引擎能屈能伸,在低端设备和平台上能达到高性能低功耗,在高端设备上也可以尽可能释放引擎的表现力。


像这次针对3.7版本开发的“赛博朋克”Demo,我们针对各种不同的移动端芯片做了精细的配置,让该 Demo 可以以 30FPS 的稳定帧率运行在绝大部分设备上,其中最低端的设备,我们下探到了海思麒麟 970(2017)、高通骁龙 835(2017)和苹果 A10 芯片(2016),这代表着基于Cocos制作的高质量游戏已经可以覆盖目前市面上的大部分低端设备。


游研社:现有用户中使用Cocos来开发3D游戏的需求是怎样的,此前用户反馈中体现的最主要痛点是什么?


Panda:现有用户的期望和我们提供的优势还是比较接近的,尤其是在轻量化和跨平台方面。


与此同时,很多新的用户开始使用 Cocos,在制作上提出了更高的要求,比如后处理、烘焙器优化、更丰富的光照表现等等,针对这些我们在 3.7 做了很多工作,比如光照贴图的优化、Light Probe、Reflection Probe 以及光照的融合,还有添加后处理和自定义管线,以及加入LOD这样的性能优化功能。


还有一些呼声很高的功能也正在规划中,比如内置导航网格,超大场景(50km2),Steam 支持……


随着越来越多 3D 开发者开始使用 Cocos,生态在推动着 Cocos 不断向前进取,我们也期待更大的项目开始使用 Cocos,我们一起推动引擎进入螺旋上升的正向循环


游研社:在初步完成了3D工具链的搭建后,Cocos下一步的目标是什么?


Panda:其实还远远没有完成,工具层面的坑是越挖越深的,完全看不到填完的希望呢。


当然 3D 的开发能力是一个巨大的工程,我们也时刻注意勿在浮沙筑高台,时刻在考虑基础设施的稳固程度,选择合适的时机进行重构,比如3.6 版本的原生化,3.7版本的自定义管线,原生场景编辑器也是未来做大场景所必备的。


简单来说,满足大场景制作和运行要求是我们下一步规划中的重点目标


游研社:Cocos花了不少功夫来搭建面向更重型游戏的3d化引擎,但另一方面,让Cocos引起外界关注的依然更多是《羊了个羊》这样的轻量化游戏,团队内部如何看待这样的现象?


Panda:我们觉得这很正常,Cocos 目前的优势在轻量化和跨平台游戏上,尤其是一些低算力平台,比如小游戏、车机等。


一方面,我们的进展可以给所有开发者信心,我们对整个引擎的优化和体验提升也会惠及轻量游戏的开发者。很多开发者一直相信 Cocos 也是因为看到我们在引擎上的持续投入和不断进取。


另一方面,越来越多 3D 开发者进入 Cocos 的生态,这是我们更加重要的战略布局,引擎的生态孵化是需要很长周期的,一个功能从规划到完成再到推广,直至被游戏开发者使用,最后进入上线游戏,往往需要一年到两年,甚至更长的周期,所以我们任何时候当下做的工作永远都是为了后面一年的成果,这种立足长远的视野对于引擎开发非常重要。


21 年 Cocos Creator 3.0 发布的时候,还没有人把 Cocos 当做 3D 引擎,但现在已经有了《种地勇者》《Midea True Space》《Discord Putt Party》这样的成果, 证明了我们当时工作的价值。


我们相信当下所做的工作也会在 23 年下半年孵化出更多的案例。


结语


回到玩家层面,所谓“在虚拟世界中还原出真实的光线”其实是个有些遥远的技术话题,大部分人并不关心这些效果是如何具体实现的,更关注的是自己现有的设备上还能不能展现出更好的画面。


这也正体现了Cocos团队所做工作的意义——让所有玩家都跟着厂商去追逐硬件更新算不得一件天经地义的事,也需要有人深耕于更扎实的领域,填补那些被遗忘的角落。


在这样的事业中,也同样蕴含着无数未知的技术和市场潜力。