游戏开发引擎 手机游戏引擎有哪些( 二 )


游戏开发引擎 手机游戏引擎有哪些


不过拥有延迟渲染管线还远远不够,Demo场景毕竟拥有成百上千的复杂光源,每个像素对所有光源都进行一次光照计算显然也吃不消 。Cluster Light Culling则能有取舍地剔除掉影响不到像素的光源,按照距离选取最近的光源渲染 。
游戏开发引擎 手机游戏引擎有哪些


上图为关闭光源,下图为开启灯光效果
“因为Demo中的光源基本都是静态光源、不会移动 。”youyou进一步向GameLook解释:“利用这个特点,我们只需要在场景初始化时,将整个世界在3D空间里划分为16 x 16 x 16 的格子;接着计算每个光源到格子的距离,将能影响到格子并且最近的几个光源(这个数量可以控制)的信息放到格子中 。然后在光照计算阶段时,就可以根据 GBuffer 中世界坐标信息计算出当前像素所在格子,从中获取对应需要计算的光源信息 。”
游戏开发引擎 手机游戏引擎有哪些


如果更细心的话还会发现,Demo中镜头俯拍城市时,道路积水也会倒映出对应各色霓虹灯的反光效果 。而这种饱含真实感的细节,则是通过IBL (Image Based Lighting ) 实现的 。
游戏开发引擎 手机游戏引擎有哪些


与传统做法中,出于移动端性能的考虑,只用一张天空盒作为环境贴图、或者一整个世界烘焙出一张环境贴图的做法相比;为了避免穿帮、追求更高的真实感,Demo里尽可能在不同的区域中放置反射球,让每个反射球只烘焙这一个区域中的环境信息 。
游戏开发引擎 手机游戏引擎有哪些


上图为开启反射球,下图为关闭反射球效果
youyou还提到,不过当世界中反射球比较多时,又会出现多光源中碰到的问题,应该尽可能只计算影响到当前像素的反射球信息 。“利用已有的 Cluster Light Culling 逻辑,很容易就可以扩展实现 Cluster Reflection Probe 的逻辑 。”
游戏开发引擎 手机游戏引擎有哪些


然而随着继续深入这座“不夜城”,整个Demo随之给人一种雾气弥漫却又通透的感觉,将赛博世界独有的糜乱、颓败氛围表现得淋漓尽致 。
游戏开发引擎 手机游戏引擎有哪些


GameLook这种直观感受显然也在youyou的预料中,他直言:“做场景设定时,我们就希望营造一种看上去有雾、但是又感觉视线很通透的感觉 。为了实现这种效果,我们选择指数高度雾的算法,在场景低处的雾会比较浓厚,越往高处的雾越稀薄 。并且天空盒也加入了雾效的算法,这样高处的建筑的颜色才能跟天空盒的颜色完美衔接上 。”
游戏开发引擎 手机游戏引擎有哪些


的确,视线上移后几乎看不见雾气的出现,但取而代之的则是各种飞行物充斥整片天空,再现赛博朋克世界中经典的科技元素 。
游戏开发引擎 手机游戏引擎有哪些


“这里主要使用了我之前写的一个 spline tool 的插件,这个插件可以让开发者在编辑器中自由创建编辑样条曲线,通过生成的曲线你可以自定义出许多实用的功能 。”youyou表示,Demo正是使用了生成的曲线作为飞行器飞行的轨道 。只要预先在编辑器里面编辑多条符合飞行规律的轨道,运行时定时生成飞行器并随机选择一条轨道放上去即可 。
游戏开发引擎 手机游戏引擎有哪些


未来随着 Cocos 技术的不断突破,相信还将为玩家和市场带来更多精品化、跨平台的游戏,并加速推动行业大步前进 。

推荐阅读