Vulkan 画三角形第十三章:创建命令缓冲区

命令在 Vulkan 中,比如绘图操作和内存传递,并不能直接经过函数调用来执行。我们必须要把所有需要执行的操作记录到命令缓冲区对象中。这样做的优势在于配置绘图命令的复杂工作能够提前且多线程进行。这之后,我们只需要在主循环中通知 Vulkan 执行这些命令

Read more  ↩︎

Vulkan 画三角形第十二章:创建帧缓冲区

在之前的文章中已经讨论了很多帧缓冲区相关的东西,并且我们已经配置了渲染路径,渲染路径基于一个单独的与交换链图像具有相同格式的帧缓冲区,但我们实际上还没有创建它

Read more  ↩︎

Vulkan 画三角形第十一章:创建图形流水线

首先还是添加一个成员函数并在 initVulkan 中调用它

Read more  ↩︎

Vulkan 画三角形第十章:着色器模块

与早期 API 不同,Vulkan 中的着色器代码必须要以字节码的格式指定,而不是像 GLSL、HLSL 这样人类可读的语法。这种字节码格式是 SPIR-V,它可以用于 Vulkan 和 OpenCL。它是一个用来写图形与计算着色器的格式,但是现在我们只关心可用于 Vulkan 图形流水线的着色器

Read more  ↩︎

Vulkan 画三角形第九章:渲染路径

我们需要配置渲染时需要使用的帧缓冲区附着的相关信息。我们需要指定有多少个颜色和深度缓冲区,它们的采样数以及通过渲染操作应当如何处理它们的内容。所有的这些信息都会被封装到渲染路径对象中,于是我们添加一个成员变量来保存它

Read more  ↩︎

Vulkan 画三角形第八章:图形流水线介绍

接下来的文章我们将会配置图形流水线来绘制我们的三角形。图形流水线就是一系列的操作,这些操作把我们的网格体中的顶点和纹理转换成渲染目标上的像素点

Read more  ↩︎

Vulkan 画三角形第七章:创建图像视图

为了能够使用 VkImage,包括交换链中的在内,我们需要在渲染管线中创建 VkImageView。一个图像视图真的就是字面意思的图像的视图。它描述了如何访问这个图像以及访问这个图像的哪个部分,例如图像可能被当作不需要 Mipmap 的二维深度贴图

Read more  ↩︎

Vulkan 画三角形第六章:创建交换链

我们在把图像展示到屏幕之前,需要先把它们渲染到缓冲区中,而交换链就是存放缓冲区的地方。交换链本质上是一个存放需要展示到屏幕的图像的队列。我们的应用程序要做的就是从这个队列中取出一个图像,然后在上面渲染,最后再返回给队列。这个队列是怎么工作的以及队列中的图像什么时候展示到屏幕上,它们都取决于交换链是怎么创建的,但是交换链一般的目的都是同步图像展示和屏幕刷新率

Read more  ↩︎

Vulkan 画三角形第五章:创建逻辑设备

选取了物理设备之后,我们需要创建一个逻辑设备来跟它进行交互。逻辑设备的创建过程跟实例的创建过程类似,我们需要描述要用到的特性。我们还需要根据之前查询好的队列族,指定需要创建的队列。我们甚至可以对于同一个物理设备创建多个逻辑设备来应对不同的需求

Read more  ↩︎

Vulkan 画三角形第四章:选取物理设备

创建了表面之后我们接下来就可以在系统中选取一张显卡,事实上我们可以选取多张显卡并同时使用它们,但是在本文中我们只用一张显卡作为示范

Read more  ↩︎