在Google I / O 2016上,Android Nougat 宣布了对Android的Vulkan API支持。为了让您耳目一新,此API可帮助开发人员更好地控制底层硬件。这种访问方式可以帮助他们更好地利用各个单元的处理能力和图形功能,并优化游戏以使其运行尽可能流畅。毫不奇怪,正确的内存分配和线程管理在任何种类的耗电任务中都很重要,例如运行游戏。这就是Xbox One和PlayStation 4这样的流行游戏机已经做了很长时间了,这使开发人员可以对设备内部的硬件进行低级控制。
有趣的是Vulkan是跨平台的开放标准,针对跨平台的图形应用程序。今年早些时候,我们发现了一个线索,即Android Q可以通过Vulkan API渲染用户界面元素。这将是进一步改善系统平滑度的步骤。现在,我们收到的信息表明,Android Q肯定会支持ANGLE,从而简化2D游戏的开发。
什么是角度?
ANGLE是缩写,表示“几乎本机图形层引擎”。WebGL的兴起使得有必要提供支持渲染器的标准化解决方案。OpenGL驱动程序在Windows平台上已经不太稳定了。因此,ANGLE通过将OpenGL代码转换为Direct3D(Windows本身支持的API),将一切提升到一个全新的水平。ANGLE的主要目标是通过将WebGL和OpenGL ES内容转换为平台上可用的硬件支持的API,从而使OpenGL易于所有人使用。使用相同的原理,ANGLE会将OpenGL代码转换为Android上的Vulkan代码,因为前者是操作系统上官方支持的硬件API。您可能每天都在使用ANGLE,而从未意识到。ANGLE内置于台式机的Google Chrome和Mozilla Firefox Web浏览器中。它用于在Windows的这些浏览器中呈现任何图形内容。
OpenGL ES与Vulkan
Khronos Group正在努力使ANGLE成为Vulkan上OpenGL的主要渲染器。你们中的许多人可能没有看到需要放弃使用OpenGL来支持Vulkan的需求,但是肯定还有改进的余地。在这一点上,OpenGL API被认为是一项过时的技术。它最初于26年前的1992年发布。对于你们中的某些人来说,26年可能并不意味着什么,但是对于技术开发而言,这是一个天文数字。在2016年,世界范围内的下一级图形API引入了Vulkan。但是,更新并不总是意味着更好,不是吗?让我解释一下为什么Vulkan比OpenGL / OpenGL ES好得多。
如果您曾经使用过OpenGL ES,您会知道它非常大。该API具有300多个扩展,根本不容易使用。Vulkan将所有功能提升到一个全新的高度,提供了更小的API和直接的图形控制。它也更容易实现。尽管Vulkan的工作水平低于OpenGL ES,但这意味着有更多的控制权。使用Vulkan,线程和内存管理完全留给游戏的开发人员,因此您可以充分利用资源。另外,Vulkan的移动版和桌面版之间的差异很小,从而使游戏的移植更加容易。简而言之,Vulkan是一种低级驱动程序,可让您释放特定设备上存在的图形卡的全部潜能。
为什么要成角度?
ANGLE的第一个优点是它是一个开放标准平台。有无数种方法可以为该项目做出贡献。您可以在设备上测试驱动程序,报告错误,修复错误,帮助开发人员提出解决方案,发送建议,为开发捐赠一些资金,等等。所有这些都将提高开发速度。与OpenGL ES相比,下一个优点是可移植性和跨平台支持。ANGLE的性质使平台和游戏开发人员的工作变得更加轻松。维护和实施ANGLE比以前的实施要容易得多。OpenGL过于零散,以至于跟踪错误并将其修复在不同的设备上对于开发人员来说是一个痛苦。将所有必需的驱动程序集中到ANGLE中意味着开发人员将可以更轻松地实现它们。ANGLE开发人员Jamie Madill,与我们确认,在Android平台上,ANGLE将通过Google Play商店定期接收更新。通过内置的第一方市场更新驱动程序是一个好主意,因为用户不必在每次驱动程序更新时都更新整个系统。而且,开发人员不需要每次ANGLE更改某些内容时都修改代码。这是有关ANGLE如何使Android游戏开发受益的视频。
如您所见,ANGLE在过时的OpenGL ES上进行了许多改进。Android Q的第一个开发人员预览版并不遥遥领先,因此我们可以拭目以待,看看ANGLE在实际中如何工作。根据此提交,用户将能够从开发人员选项中强制所有应用程序与ANGLE一起使用。对渲染器的支持已经合并到Android Pie分支中,供OEM进行测试。您可以从下面的网站和GitHub存储库中跟踪ANGLE的开发。