跳转至

开始旅程

Vulkan是用来构建游戏的图形API,我们将逐步进入Vulkan API的复杂世界来解释它们是什么。

事不宜迟,请跟随我的脚步来学习Vulkan吧!

什么是API?

在讨论vulkan之前,我们先了解一下 APIAPI 代表应用程序接口,是一组能使不同应用程序之间进行互通的程序代码。

本质上,调用 API 代表软件发送请求。例如,天气预报系统包含每天的天气数据信息,您手机上的天气预报程序通过 API 与该系统“对话”,并在您的手机上显示最新的天气信息。

什么是Vulkan?

Vulkan 简介

它是一个低开销、接近底层硬件的 API,适用于 3D 图形和计算应用程序。Vulkan 基本上是 OpenGL 的后续版本,它最初被称为“下一代 OpenGL 计划”。Vulkan 理论上比其他 GPU API 更具优势,具备跨平台支持、更好的支持多线程处理器、更低的 CPU 负载以及一定程度的操作系统无感知能力。它还应该使驱动程序开发更容易,并允许预编译驱动程序,包括使用以各种语言编写的着色器。

Vulkan 是一种专为实时 3D 图形应用程序(例如游戏)而设计的 API。它能够与计算机的 GPU 进行互通,并告诉 GPU 需要渲染什么样的游戏画面。实际的交互过程比这复杂的多,但这就是基本的交互过程。

游戏在不同的平台可以使用不同的图形 API,如Windows的DirectX, MacOS的Metal。而 Vulkan 最有优势的一面是它是开源和跨平台的,理论上应该可以跨多个操作系统工作,包括 Android、SteamOS、MacOS、Linux 和 Windows 7 到Windows 11。高效的图形 API 可以带来卓越的性能, Vulkan 创建的出发点就是要确保其较低的 CPU 占用率,为其他工作负载留出更多空间。

Vulkan 跨平台的特点使开发人员可以更轻松地创建跨平台访问的游戏,使得我们的游戏玩家可以在更多的地方玩游戏,这对于各方来说都是理想的选择。

Vulkan 是如何诞生的?

Vulkan 最初由 Khronos Group 于 2015 年 3 月宣布,暂定发布日期为 2015 年底。Khronos 是一个非盈利行业联盟,由图形行业的知名厂商在 15 年前创立,包括 ATI(已被 AMD 收购)、Nvidia、Intel、Silicon Graphics、Discrete 和 Sun Microsystems。即使您没有听说过 Khronos,您也可能听说过他们的一些标准,例如:OpenGL、OpenGL ES、WebGL、OpenCL、SPIR、SYCL、WebCL、OpenVX、EGL、OpenMAX、OpenVG、OpenSL ES、 StreamInput、COLLADA 和 glTF。

与 opengl 不同的是,Vulkan 是从头开始设计的,它可以在多种平台上运行,从手机、平板电脑到游戏机、高端台式机。API 的底层设计是分层的,或者说是模块化的,因此它可以为代码校验、调试和分析创建通用且可扩展的架构,而不会影响性能。Krhonos 声称分层方法将具备更大的灵活性,促进跨供应商的 GPU 工具创新,并为复杂的游戏引擎提供更直接的 GPU 控制。

理论上,Vulkan 可用于并行计算硬件、控制数成千上万个 GPU 核心、微型可穿戴设备和玩具无人机、3D 打印机、汽车、VR 套件以及几乎任何其他内部具有 GPU 的设备。

有关更多详细信息,建议您查看官方 Vulkan 概述

Vulkan 和 OpenGL

一些人可能知道 OpenGL,它也是一个 3D 图形 API。Vulkan 并不是 OpenGL 的直接替代品,而是一个允许对 GPU 进行更细化控制的显示 API

我们对比一下 Vulkan 和 OpenGL 之间的区别。Khronos 给出了一个简单的对比图说明:

vulkan vs opengl

在应用程序中使用 Vulkan 需要投入了更多的精力处理细节, 可能并非每个开发人员都愿意这样做,但如果开发人员正确做了这些工作,将会发现有很多功能和性能的提升。

use vulkan