Vulkan 究竟是什么

Vulkan图形系统究竟是什么?

Vulkan是一个图形和计算硬件的API(Application Programming Interface)。这个API由很多命令组成,它们允许程序员指定着色器程序,计算内核,对象和操作 产生高质量的图像,特别是三维对象的彩色图像。

程序员的视角看Vulkan:

对程序员来讲,Vulkan是一些命令的集合,允许内核或者着色器,和shader执行的外部 Vulkan aspect控制,使用着色器程序或者着色器和数据。通常,数据是指二维或者三维几何物体和纹理图像,着色器和内核控制数据的处理,几何物体的光栅化,光栅化产生的光照和阴影的片段,及最终把几何对象渲染到帧缓冲区。

一个典型的Vulkan程序以调用系统函数打开窗口或者准备程序绘制显示的设备为开始。然后,调用命令打开队列,并向其提交命令缓冲区。命令缓冲区包含一系列命令,它们将会被底层的硬件执行。应用程序能够做到:分配设备内存,关联内存和资源,从命令缓冲区中引用这些资源。绘制命令可调用应用程序的着色器程序,然而使用资源里的数据并产生图像。为了展示结果图像,一些平台相关的命令需要把结果图像转移到显示设备或者窗口。

实现者的角度看Vulkan:

对于实现者,Vulkan是一系列命令的集合,它允许构造命令缓冲区并提交到设备。现代化的设备几乎对所有Vulkan操作都加速了,把数据和帧缓冲区存储在高速内存,在专用的GPU上执行着色器。实现者的任务是在主机端提供软件lib,它实现了Vulkan API,把每一个Vulkan命令适当的 映射到图形硬件以利用物理设备的能力。

我们的视角看Vulkan:

我们把Vulkan看作拥有绘制操作可调用的可编程阶段和状态驱动固定阶段的管线。我们期待这个模型可产生一个规范,满足程序员和Vulkan实现者的需要。 然而,它并不提供如何实现的模型。Vulkan实现必须产生符合这些特定方法产生的结果,但是,可以执行比指定方法更加高效率的计算方法。

发布了54 篇原创文章 · 获赞 63 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u010281924/article/details/105371256