概述:Vulkan API

在整个2016年,您可能听说过“ Vulkan”一词。 也许您听到新闻爆破一词时说过,Doom的预期重启将支持“ Vulkan API”。 另外,您当中的Android爱好者可能已经在Google I / O上听到了这样的消息:最新版本的Android(7.0:牛轧糖)将提供Vulkan支持。 如果您正在阅读本文,那么您可能还不清楚……Vulkan到底是什么? Vulkan由Khronos组(由AMD,Valve和Nvidia等名称组成的第三方组织)于2016年2月发布,是一种低级多平台图形API。 它基于AMD的Mantle API,是OpenGL的后继产品,并且是Microsoft DirectX 12 API和Apple的Metal API的竞争对手。 太好了…这一切意味着什么?

首先,让我们澄清一下什么是“应用程序编程接口”(API)。 API的正式定义为:

“一组允许创建访问操作系统,应用程序或其他服务的功能或数据的应用程序的功能和过程”

一个流行的类比描述是将API与餐厅服务员进行比较。 服务员向顾客提供菜单可供选择,然后将订单传递给厨房,随后将所请求的菜肴返回给各自的顾客。 用软件的术语来说,API为开发人员提供了一些要调用的函数,然后适当地处理了开发人员软件提出的任何请求。 因此,API通常采用处理常见任务的代码库的形式,因此许多人认为API是现代开发的基础。 Vulkan是处理图形渲染的API的示例。

这就是API,但是在这种情况下,“低级”是什么意思? 具体而言,低级API指的是在开发人员和硬件之间具有较少抽象层的API。 回到我们的餐厅类比,低级API类似于可以指定:餐点的各个成分,每种成分的烹饪方式,然后可以直接告诉厨师您的订单。 这样可以提供特异性方面的优势,并可以减少沟通开销,因为您可以更直接,更详细地进行交流。 特别是Vulkan(及其竞争对手)擅长通过使用多线程来使用多核计算机。 由于高级API的普及早于并行技术的普及,因此该技术先前尚未进行优化。

通常,所有这些都被认为是有益的,但是必须注意,低级API为以前不存在的问题提供了可能性。 其中很大一部分是责任从API转移到开发人员。 这使发展越来越复杂。 因为需要考虑更多的金属细节。 最重要的是,这也使非技术开发人员有可能制造质量较低,稳定性较差的软件,因为他们拥有更多的访问权限,并且限制更少。 从这个意义上讲,最好将Vulkan描述为可提供更好性能但不能保证性能的API。

Vulkan API与OpenGL: https : //www.hardwareunboxed.com/doom-vulkan-vs-opengl-benchmark-the-tide-turning-in-amds-favour/

最后,Vulkan最吸引人的功能是它的多平台支持,并且经常被引用为该功能。 听起来,多平台API是跨多个平台支持的API。 在撰写本文时,Vulkan目前支持多种硬件体系结构(包括Nvidia和AMD GPU)中的Windows,Linux,Tizen和Android。 对于Vulkan来说,这是一个独特的卖点,因为它的主要竞争对手DirectX 12仅在XboxOne和Windows 10+上受支持,而Apple的Metal仅在IOS和OSX上受支持。 由于Vulkan是一个开放的规范,因此将来也有可能使其他人采用该API。 但是,DirectX 12和Metal可能仍将由各自的所有者公司专有。

对于Vulkan来说,重要的问题是:“它会被业界采用还是会尘土飞扬”? 由于一些原因,这是一个复杂的问题,实际上只能随时间回答。 也就是说,我们当然可以根据当前情况进行推测。 首先,值得注意的是,Vulkan得到了Valve(游戏平台Steam背后的公司)的一些体面支持。 造成这种情况的部分原因是Valve在SteamOS和Steam Machines上投入了大量资金。 由于SteamOS基于Linux(目前无法支持大多数PC游戏)的操作系统,因此这些产品具有相关性。 向Vulkan的行业过渡将消除Linux作为受支持的游戏操作系统的局限性,从而大大扩展了Steam机器提供的库。 反过来,这将使Steam Machines能够更好地在游戏机市场上竞争。 Vulkan和Steam机器具有共生关系。 为了使Steam机器更好地竞争,Vulkan必须起飞。 为了使Vulkan更好地竞争,Steam机器必须起飞。

Vulkan口袋里的第二个招数是不断增长的Android游戏市场。 尽管这是主要游戏机市场的一个独立人群,但是将Android游戏移植到PC以及将PC游戏移植到Android的吸引力是不容小not的。 部分原因是市场规模的增长,也归因于智能手机作为游戏平台提供的功能的增长。 最重要的是,考虑一下:VR在PC和智能手机上的普及,谣传Android台式机操作系统以及大量android供电的控制台,可以说PC游戏和Android游戏之间的差距是巨大的。变薄。 随着差距的缩小,可以利用Vulkan的优势。

现在所有这些点都很好,但是Vulkan必须克服一些主要障碍。 我认为,影响Vulkan势头的最大因素之一是苹果决定不在IOS或OSX上支持Vulkan。 据推测,苹果将支持该平台以改善其有限的游戏库,但是该公司在2015年的WWDC上宣布,他们将使用自己的名为Metal的低级API,并且将不支持Vulkan或更高版本的OpenGL。 结果,对Vulkan成为三种主要计算机操作系统(Windows,Mac和Linux)上杰出的图形API的希望破灭了。 苹果为此发布了MoltenVK(Metal和Vulkan的组合)作为补偿,但是,如果没有Apple支持Vulkan作为主要API,它几乎不会改变任何事情。

最终,游戏开发工作室和游戏引擎开发者将决定Vulkan的命运。 幸运的是,两者中的后一个已经很努力了,源引擎(Valve)和虚幻引擎(Epic Games)已经支持Vulkan,而Unity宣布了他们在2017年支持Vulkan的计划。另一方面,开发工作室将更像是一场艰苦的战斗。 DirectX 12在Vulkan上拥有一年的领先优势,部分是由于开发者对API的偏爱。 由于DirectX 12还提供了更大的游戏库。 DirectX 12的胜利将导致有效图形硬件的使用得到改善,但在以Microsoft和Windows为主导的行业中。 但是,我为Vulkan奋斗,因为它有潜力将市场转向多元化的多平台,多操作系统环境。 从我的角度来看,这种景观最能使消费者受益。