Vulkan Cookbook 第四章 资源和内存

在本章中我们将介绍以下内容:

创建缓冲区
为缓冲区分配和绑定内存对象
设置缓冲区内存屏障
创建缓冲区视图
创建图像
分配内存对象并绑定到图像
设置图像内存屏障
创建图像视图
创建2D图像和视图
使用CUBEMAP视图创建分层2D图像
映射、更新和取消映射主机可见内存
在缓冲区之间复制数据
将数据从缓冲区复制到图像
将数据从图像复制到缓冲区
使用多级缓冲区更新设备本地内存绑定的缓冲区
使用多级缓冲区来更新具有设备本地内存绑定的图像
销毁图像
释放内存对象
销毁缓冲区

介绍

在Vlukan中有两种非常重要的资源类型可以储存数据--缓冲区和图像。缓冲区代表线形数据数组。与OpenGL的纹理类似,图像表示一种(通常)特定于给定硬件(所以我们不知道哪部内存结构)的方式组织的一、二、或三维数据。缓冲区和图像可用于各种目的:在着色器中,我们可以从中读取或采样数据,或者将数据储存在其中。图像可以用作颜色或深度/模版附件(渲染目标),这意味着我们可以渲染它们。缓冲区还可以储存间接绘制期间使用的顶点属性、索引或参数。
非常重要的是,在资源创建期间必须指定每个提到的用法(我们可以同时提供其中的许多用法)。当我们改变应用程序中使用给定资源的方式时,还需要通知驱动程序。
与OpenGL等高级API相反,Vulkan中的缓冲区和图像没有自己的储存空间。它们要求我们专门创建和绑定适当的内存对象。
在本章中,我们将学习如何使用这些资源以及如何为它们分配内存并将其绑定到它们。我们还将学习如何将数据从CPU上传到GPU,以及如何在资源之间复制数据。

猜你喜欢

转载自blog.csdn.net/qq_19473837/article/details/84567765