覆盖16亿玩家的游戏引擎都有哪些3D技术呢?

大表姐——Cocos 引擎生态总监,从事游戏行业9年。在市场热门游戏品类中均有深厚的研发经验,曾任《乱江湖》、《捕鱼达人》系列等爆款游戏主程,现主要负责引擎研发、游戏产品更新,统筹 Cocos 生态拓展。

说到游戏引擎Cocos,相信大家一定不会陌生。从Cocos2d-x第一个版本到现在,Cocos历经了11年的发展,目前是国产引擎中的领先者,并且在全球拥有150万的注册开发者,30万的月活跃开发者,遍布全球超过 203个国家和地区,使用Cocos引擎制作的游戏及应用覆盖超过16亿玩家设备。像“刀塔传奇”、“ COK(列王的纷争)”、“ 梦幻西游”、“ 动物餐厅”、“最强蜗牛”等知名游戏,都是基于Cocos引擎研发的。

 游戏引擎被称为“中间件”,是因为它们向游戏开发者提供了一系列可视化开发工具和可重用组件,并集合了游戏开发所需要的全部核心功能。这些工具通过与开发环境进行集成,方便开发者简单、快速进行数据驱动方式的游戏开发。为了提高游戏开发人员的开发效率,引擎开发者会开发出大量游戏所需要的软件组件。

Cocos是100%开源的、轻量的、易用的跨平台引擎。许多优秀的开源项目例如前端三大框架 Angular、React 和 Vue 均已支持 TypeScript ,Angular2 和 Vue 3.0 都是直接用 TypeScript 开发的!大多数第三方JavaScript 库都提供了对TypeScript 的支持。

作为全球领先的2D &3D数字内容开发引擎,Cocos具备完整开发大型3D游戏所需的全部能力,那么Cocos具体都有哪些3D技术能力呢?

 1 

Deferred Shading延迟渲染

前向渲染是大多数引擎使用的标准,在绘制物体的时候会立即进行光照计算,在场景中,每渲染一个物体,都会考虑所有光源对它的影响,然后再渲染下一个物体,以此类推。传统的前向渲染思路是,正常把物体从头到尾按流程渲染到render target.。其主要缺点就是光照计算跟场景复杂度和光源个数有很大关系。假设场景里有 n 个物体,m 个光源,且每个物体受所有光源的影响,那么复杂度就是O(m*n)。由于最终看到的画面都是 2D 的,只能看到有限的像素数,理论上只要处理最终可以看到的像素就够了,多余的处理是浪费的。而延迟渲染就是为了解决这样的问题而诞生。

去年6月, Cocos Creator v3.1 中,Cocos 和华为 HMS CoreCG Kit 团队合作,实现了延迟渲染管线。延迟渲染管线改变了渲染物体的方式,在延迟渲染管线里,物体会先被绘制到G-Buffer中,这样可以获得渲染到某个像素的最终物体的所有信息,在下一个渲染pass里面就可以根据G-Buffer里面的信息进行光照计算,这个步骤里就只需要进行一次光照计算。因此,如果场景里有 n 个物体,m 个光源,复杂度仅为 O(n+m)。

因此,可以简单总结一下延迟渲染的优缺点:

  • 优点:只渲染可见像素,去除无用计算;对后处理支持良好;对使用大量光源的场景优势很明显。

  • 缺点:读写 G-buffer 的内存带宽用量大;对透明物体的渲染存在问题;对多重采样抗锯齿(MSAA)的支持不友好。

 2 

Light Culling 光源剔除技术

图片中可以看到开启灯光和关闭灯光的渲染差别,尤其是在色彩以及细节方面。在整个场景中有上百个这样的光源,即使有了延迟渲染管线,每个像素对所有光源都进行一次光照计算这样的计算量也是很大的。但是不是所有的光源都会影响到像素,尤其是在很多光源照射范围比较小的时候,我们需要剔除掉影响不到像素的光源。按照距离选取离像素最近的几个光源来渲染。在demo 里面我们的光源基本都是静态的光源,也就是不会移动的,我们只需要在场景初始化的时候将整个世界在 3D 空间里面划分成 16 x 16 x 16 的格子。接着计算每个光源到格子的距离,将能影响到格子并且最近的几个光源(这个数量可以控制)的信息放到格子中。这样的在光照计算阶段的时候就可以根据GBuffer 中世界坐标信息计算出当前像素所在的格子,然后只需要计算格子里存储的光源信息就可以。

 3 

Reflection Probe

我们通常还需要通过计算周围环境对物体的影响来增加渲染的真实感,比如街上的水滩会倒映出旁边的墙体,房间里的镜子会反射出房间里的家具等。一个常用的实现方法是通过将整个世界烘焙到一张环境贴图中,渲染镜面的时候根据视角跟物体表面法线计算出反射方向,从环境贴图中读取反射方向的光照信息,整合到光照计算中。

在手机端上出于性能的考虑一般都只用一张天空盒作为环境贴图,或者一整个世界烘焙出一张环境贴图。但是环境中显示的反射就可能会比较容易穿帮,比如镜子里反射出来的物体可能是穿过好几堵墙外的物体。为了真实感尽可能在不同的区域中放置反射球,每个反射球只烘焙这一个区域中的环境信息。当世界中的反射球比较多的时候又会出现上面多光源中碰到的问题,我们应该尽可能只计算影响到当前像素的反射球信息。利用已有的Cluster Light Culling 逻辑,很容易就可以扩展实现 Cluster Reflection Probe 的逻辑。问题是每次渲染中贴图的数量是有限的,如果分开存储每个反射球的环境贴图,数量是肯定不够的。一种方法是把多张cubemap 上传到 3d 贴图中,一张 cubemap 就是 3d 贴图中的一个 z 分量。一种方法是把多张 cubemap 合起来打到一张cubemap atlas 上,但是反射算法得自己写,并且很容易采样到不相关像素造成画面溢出。

 4 

Cocos Runtime

Cocos Runtime已经成为轻量化运行环境中的行业默认标准,也是针对多源异构设备,提供流畅、3D化、高效率低成本工具中的首选。

《抢金币》中,游戏端会被放置在智慧屏中运行,而手机仅作为手柄实现操控。当游戏开始时,智慧屏会弹出设备选择页面,选中附近的华为手机作为手柄输入端,建立连接,初始化设备。建立连接之后,智慧屏会通过senDataToRemote接口来告知手机端作为控制器可进入游戏状态。而手机端作为手柄则通过onRemoteRequest接受游戏可开始操作的信号,开始发送操控数据给智慧屏。

官方表示,在整体游戏过程中,所有操控数据都可以通过这两个接口进行传输和反馈,实现捡金币、捡锤头及抢金币的游戏逻辑。

 

Cocos充分利用HarmonyOS“分布式技术”带来的设备流转和协同的便利性,多设备协同的游戏模板,让开发者可以通过该模板,快速创建支持多设备协同的游戏或者应用。带来更多有趣应用和游戏体验场景以及全新的互动模式。

从移动游戏出发,Cocos引擎不断致力于为实时渲染的数字交互内容提供完善的技术支持和行业解决方案。经过多年发展,Cocos 已经成长为横跨多领域的普适性工具,基于Cocos引擎创建的内容场景涵盖了在线教育、智能座舱、XR、互动营销、数字孪生、教育、工业4.0等领域。

在虚拟数字人场景,Cocos目前已经实现创造虚拟人所需的建模、口型、动捕、渲染、AI接入五大关键技术,帮助开发者创造足够逼真的3D形象。

 

智能汽车领域,Cocos 在ADAS,HMI 等方面已经有了方案积累,在人与车、车与外界的不同场景上实现了功能互动,可助力智能座舱打造全新的 HMI、VPA、自动驾驶可视化、游戏内容等。Cocos还打造了服务主机厂、Tier 1、车联网企业等智能座舱 PaaS 服务平台,基于 Cocos 3D 渲染引擎打造的多模态交互智能座舱产品也将陆续推出。

目前 XR 项目可通过Cocos 引擎以源码的方式开发,未来还将帮助开发者快速完成 3D 向 VR 版本的转化。在率先落地的虚拟展会场景,Cocos 已与法国智奥会展集团达成了深度战略合作,并已服务于ChinaJoy Plus 等多个线上展会。

在线教育领域,Cocos 推出了面向教育从业者的Cocos ICE 课件编辑器,这是一款无需编码,即可快速上手的互动课件编辑器,强大的兼容性,可定制化的特性能满足绝大多数教育机构的需求,已获得多家教育领域龙头企业青睐,Cocos已经占据该领域中国市场超过 90 %的份额。

想要了解更多Cocos游戏引擎,8月19-20日深圳华侨城洲际,届时大表姐将在2022K+全球软件研发行业创新峰会上与大家分享《Cocos:高效赋能游戏研发,开源拓宽应用生态边界》,帮助游戏开发者极大提升游戏开发效率。

 

同样的游戏行业,腾讯游戏海外发行技术部数据平台总监周东祥将跨国连线Databricks资深专家/解决方案架构师王洋,于明晚八点在K+Talk直播间与大家共同探讨“多云环境下的数据中台”。

感兴趣的同学赶快扫码预约免费观看直播吧!

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值