推荐序3

Unity至今已经成为可以横跨将近30个主流计算平台的游戏引擎。经历这么多年的蓬勃发展,它早已不再仅仅是游戏引擎,在工业、医疗、教育、人工智能、虚拟现实等领域都可以看到它的身影。在游戏方面,近些年国内游戏圈更是借助Unity开发出了很多脍炙人口的游戏,在绝大多数的手机游戏和PC游戏中都可以看到Unity的身影。

随着手机硬件的慢慢崛起,在手机上开发3A游戏已经不再是遥不可及的事情。前几年手机游戏还以手绘自发光为主流,而现在PBR(基于物理的渲染,Physically Based Rendering)几乎已经成了标配。而在PC平台上,在光线追踪、DLSS等全新技术的加持下,游戏的画面效果也已更上一层楼。

芯片每年都在升级且性能节节攀升,每次硬件的升级都会给游戏行业带来新的挑战。我们要拥抱最新的变化并不断地学习新东西,将最新的技术融入游戏中,以进一步提高游戏的品质。当然性能优化也是重要的一环,要充分考虑高端和低端手机的兼容性,反复在游戏效果与游戏效率之间找到那个最佳平衡点。

我们知道,游戏引擎是服务于所有类型的项目的,所以它必须要有充分的灵活的可定制性。比如我们对比三消休闲类游戏和MMO游戏后发现,三消休闲类游戏可能不需要3D渲染部分,而MMO游戏可能需要单独的寻路功能。游戏类型的不同决定了不同的制作与优化思路,以及所需的渲染技术,如果将所有东西都一股脑放在一起,那么只会让引擎越来越庞大,使得一些特定功能在某些类型游戏中无法充分发挥作用。Unity从2018版本开始添加了Package Manager,从而将若干功能分类保存成一个个的安装包,这样开发者可根据自己的游戏类型选择添加需要的包,Unity自此开始了模块化之路。

渲染管线也是一样的道理,作为一个横跨将近30个计算平台的游戏引擎,如果将整个渲染管线都揉在一起,只能让它越来越臃肿,而且也无法让它充分发挥作用,更重要的是修改起来非常麻烦,因为始终要同时考虑所有平台上的渲染。因此Unity在2018版本中发布了可编程渲染管线 (Scriptable Render Pipeline,SRP),在它的基础上开发了通用渲染管线(Universal Render Pipeline,URP)及适合主机高端平台的高清渲染管线(High Definition Render Pipeline,HDRP)这两个渲染管线模板。SRP对外暴露的都是C#接口,这样有实力的开发者还可以定制开发专属自己的渲染管线,根据开发的游戏类型针对性地优化渲染流程。

无论如何,学好SRP都是非常重要的一环,大家可以先从URP和HDRP入手。尤其是HDRP,Unity提供了它丰富的渲染效果,值得深入学习。本书通俗易懂地介绍了HDRP的开发流程以及大量实际案例,使开发者很容易掌握这套全新渲染管线,轻松将大量3A游戏的渲染效果添加到实际项目中。

宣雨松MOMO

《Unity 3D游戏开发》作者

资深游戏开发专家,Unity价值专家