什么是 Vulkan?

Vulkan 是一种新一代图形和计算 API,可为各种设备(从 PC 和游戏机到移动电话和嵌入式平台)中使用的现代 GPU 提供高效、跨平台的访问。

Vulkan 不是一家公司,也不是一种语言,而是一种允许开发人员以跨平台和跨供应商的方式对其现代 GPU 硬件进行编程的方式。Khronos Group 是一个由成员驱动的联盟,创建并维护 Vulkan。

Vulkan 的核心

核心上,Vulkan 是一个API 规范,符合标准的硬件实现都遵循该规范。公共规范是从 ./xml/vk.xml Vulkan 注册表文件生成的,该文件位于 Vulkan-Doc 的官方公共 Vulkan 规范仓库中。还提供了 XML 模式的文档。

Khronos Group 与 Vulkan 规范一起发布了从 API 注册表生成的 C99 头文件,开发人员可以使用这些文件与 Vulkan API 进行交互。

对于那些可能不使用 C 代码的人来说,有很多语言 绑定可用。

Vulkan 和 OpenGL

一些开发人员可能知道 Khronos Group 的另一个标准 OpenGL,它也是一个 3D 图形 API。Vulkan 不是 OpenGL 的直接替代品,而是一个显式 API,允许对 GPU 进行更显式的控制。

Khronos 的Vulkan 示例文章,关于 “Vulkan 与 OpenGL ES 相比如何?在以 Vulkan 为目标时,您应该期待什么? 提供了这两个 API 之间更详细的比较。

what_is_vulkan_compared_to_gl.png

Vulkan 将更多的工作和责任放在应用程序中。并非每个开发人员都愿意进行额外的投资,但那些正确执行此操作的人可以发现性能和性能的提升。

what_is_vulkan_decision.png

使用辅助库

虽然一些开发人员可能希望在没有帮助的情况下尝试使用 Vulkan,但在开发流程中使用一些较轻的库来帮助抽象 Vulkan 中一些更繁琐的方面是很常见的。这里有一些帮助开发

what_is_vulkan_layer

学习使用 Vulkan

Vulkan 是开发人员创建硬件加速应用程序的工具。《Vulkan 指南》尝试涵盖更多逻辑材料,例如扩展、版本、规范等。有关如何“使用”Vulkan 创建诸如 Hello World 三角形之类的更多信息,请查看 Khronos 的 Vulkan “学习”页面中的资源。如果您想获得更多实践帮助和知识,请随时加入 Khronos 开发者 SlackKhronos 社区论坛