Vulkan填坑学习Day24—纹理图像(Images)
demi 在 周一, 08/23/2021 - 17:44 提交
Vulkan 图像(Images),到目前为止,几何图形使用每个顶点颜色进行着色处理,这是一个局限性比较大的方式。在本教程的一部分内容中,我们实现纹理映射,使得几何图形看起来更加生动有趣。
Vulkan 图像(Images),到目前为止,几何图形使用每个顶点颜色进行着色处理,这是一个局限性比较大的方式。在本教程的一部分内容中,我们实现纹理映射,使得几何图形看起来更加生动有趣。
Vulkan 描述符池和集合,描述符布局描述了可以绑定的描述符的类型。在本章节,我们创建描述符集,它将实际指定一个VkBuffer来绑定到一个uniform buffer描述符。
Vulkan 描述符布局和缓冲区,在Vulkan中正确处理此问题的途径是使用资源描述符(resource descriptors)。描述符是着色器自由访问缓冲区和图像资源的一种方式。我们需要设置一个包含转换矩阵的缓冲区,并使顶点着色器通过描述符访问它们。
Vulkan 索引缓冲区,索引缓冲区(index buffer)就是一个指向顶点缓冲区的指针数组,它允许我们重排列顶点数据,并复用多个已经存在的顶点数据,本章介绍了如何创建和使用索引缓冲区。
在本章节我们创建两个顶点缓冲区。一个缓冲区提供给CPU-HOST内存访问使用,用于从顶点数组中提交数据,另一个顶点缓冲区用于设备local内存。
Vulkan 创建顶点缓冲区,在Vulkan中,缓冲区是内存的一块区域,该区域用于向显卡提供预要读取的任意数据。它们可以用来存储顶点数据,也可以用于其他目的。
将之前在顶点着色器中直接硬编码的顶点数据替换为顶点缓冲来定义。我们首先创建一个 CPU 的缓冲,然后将我们要使用的顶点数据先复制到这个 CPU 缓冲中,最后,我们复制 CPU 缓冲中的数据到阶段缓冲。
我们已经成功地编写代码使用 Vulkan 在屏幕上绘制出了一个三角形,但这个程序还有许多细节问题我们没有处理。比如,窗口大小改变会导致交换链和窗口不再适配,我们需要重新对交换链进行处理。
Vulkan 渲染和显示,这一章节会把之前的所有内容进行整合,我们将会编写drawFrame函数,通过主循环main loop将三角形绘制到屏幕。drawFrame函数将会执行如下操作:
Vulkan 命令缓冲区,诸如绘制和内存操作相关命令,在Vulkan中不是通过函数直接调用的。我们需要在命令缓冲区对象中记录我们期望的任何操作。这样做的优点是可以提前在多线程中完成所有绘制命令相关的装配工作,并在主线程循环结构中通知Vulkan执行具体的命令。