深入当代“图形引擎”技术(1.1),从鸿蒙Next“方舟图形引擎”说起

162 阅读4分钟

一.鸿蒙Next发布会的几个概念

HmNextCore.jpg

首先上图,在10月22日的发布会上,余总(余承东)在现场讲解鸿蒙Next时重点介绍了全面突破的OS核心技术,提到了“方舟图形引擎”。“方舟图形引擎”这个技术其实在鸿蒙4就有了,当时很多游戏圈的专业人士不太理解,更有鸿蒙游戏开发者面对自己使用的“游戏引擎”和“方舟引擎”两个“引擎”摸不着头脑。而这次发布会,大家注意到在背景列表中,“方舟图形引擎”又对标起了OpenGL ES/Skia/Metal,一下就更懵了。

那为什么专业人士反而会不理解?这些概念之间又有什么联系呢?这就要从“图形引擎”这个词本身说起。

二.“图形引擎”的概念和本质

首先说明下,我们这里要讲的是完整带有“图形引擎”四字的概念,稍后会提到“渲染引擎”和“游戏引擎”,三者是有区别的。

如果大家同时搜“多媒体引擎”和“图形引擎”,会发现国内几家百科(包括百度、搜狗、360等)都没有“多媒体引擎”这个词条,但对于“图形引擎”的说法是一致的,就是“图形引擎”最早搬运了引擎这个词,然后逐步被演化,成了现在各行各业核心技术的代名词。而这里的“图形引擎”其实当时就是指“三维图形引擎”,几家百科对于“三维图形引擎”的概念,描述如下:

“三维图形引擎(即3D图形引擎),是封装了硬件操作和图形算法、简单易用、功能丰富的三维图形开发环境”,这个定义简明扼要,说明“图形引擎”是个中间件环境。虽然词条年代有些久远,但目前还是适用的,只不过现在的“图形引擎”为了区别“图形库”,还要加个自驱性,也就是“图形引擎”自身要能创建和运行图形系统。这主要是当年的“图形引擎”搭载的都是底层库,很容易区别;而如今众多三方中间库,“图形引擎”和“图形中间库”确实不太好区分。因此根据以上定义,“3D图形引擎”本质上是一个自驱的图形中间件开发环境,这样和图形库就能区分开了。

那到这里,专业人士不理解的原因也找到了,就是很大部分人对于“图形引擎”的概念已经约定俗成了,那就是传统的“3D图形引擎”。而鸿蒙发布会的“方舟图形引擎”并不是传统应用层的“图形引擎”,而是鸿蒙系统中OS框架层的图形渲染核心+Sdk,这个其实更像是专门负责图形渲染的“渲染引擎”,只不过是在操作系统内部的。如此一来,在鸿蒙Next发布会上,“方舟图形引擎”对标OpenGL ES、Skia和Metal也就很好理解了。

ArkGfxEngine1.jpg

那可能有人会说,这应该就是个跨领域的概念错位,其实作者之前也是这么想的,然而直到一个月后的另一场发布会剧情又反转了...

三.Mate70发布会上的“方舟图形引擎”

ArkGfxEngineMate.jpg

11月26日发布会上,余总又提到了“方舟图形引擎”,这回是在mate70 pro+与mate60 pro+对比的游戏性能上,余总的原话是“我们的方舟图形引擎和我们的芯片性能的提升,让我们的游戏的启动速度和平均帧率都得到了很大提升,游戏性能再突破”,言语间是自信满满。

因为这次直接讲到了游戏,而且是商业级的3D手游,按道理这就涉及到了“3D游戏引擎”(简称“游戏引擎”),也就是游戏开发用的“3D图形引擎”。但在这一页PPT中,余总提到的并不是“游戏引擎”或“3D图形引擎”,而依然是“方舟图形引擎”,这就不禁让我们产生疑问,这个鸿蒙Next发布会上的“方舟图形引擎”,到底和游戏的启动速度和平均帧率有啥具体关系?第二篇我们将结合游戏性能分析等手段来讨论这个问题。

注:本系列文章旨在通过从热门技术的特定专业角度,深入浅出讨论其中的孰是孰非,从而更好地促进我们的守正创新。故而对于颠倒是非之评论,将保留完整司法权利。