电子说
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实现必须产生符合这些特定方法产生的结果,但是,可以执行比指定方法更加高效率的计算方法。
全部0条评论
快来发表一下你的评论吧 !