Vulkan Cookbook 前言

前言

计算机图形学有着悠久而有趣的历史。许多API或自定义方法来生成2D或3D图像已经过时了。这一历史中的一个里程碑是OpenGL的发明,OpenGL是最早的图形库之一,它允许我们创建实时,高性能的3D图形,并且可供多个操作系统上的每个人使用。它至今仍在开发和广泛使用。今年我们可以庆祝它的25岁生日!
但自OpenGL创建以来,许多事情都发生了变化。图形硬件行业正在快速发展。最近,为了适应这些变化,提出了一种新的3D图形渲染方法。它采用低级访问图形硬件的形式。 OpenGL被设计为高级API,允许用户在屏幕上轻松渲染图像。但是这种方便用户的高级方法很难被图形驱动程序处理,这是主要原因之一。
限制硬件显示其全部潜力。新方法试图克服这些困难 - 它为用户提供了对硬件的更多控制,但也有更多的责任。这样,应用程序开发人员就可以释放图形硬件的全部潜力,因为驱动程序不再阻止它们。低级访问允许驱动程序更小,更薄。但是这些好处是以开发人员需要完成的更多工作为代价的。
新图形渲染方法的第一位传播者是由AMD设计的Mantle API。当证明低级别访问可以带来可观的性能优势时,其他公司开始开发自己的图形库。新趋势最引人注目的代表之一是由Apple设计的Metal API和由Microsoft开发的DirectX 12。
但是所有上述库都是在考虑特定操作系统和/或硬件的情况下开发的。没有开放和多平台标准,如OpenGL。直到去年。 2016年,由Khronos联盟开发的Vulkan API发布,该联盟维护着OpenGL库。 Vulkan也代表了一种新方法,即对图形硬件的低级访问,但与其他库不同,它可用于多种操作系统和硬件平台上的每个人 - 从具有Windows或Linux操作系统的高性能台式计算机到移动设备Android OS的设备。由于它仍然很新,因此很少有资源教会开发人员如何使用它。本书试图填补这一空白。

这本书涵盖了什么
第1章,实例和设备,展示了如何开始使用Vulkan API。本章介绍从何处下载Vulkan SDK,如何连接Vulkan Loader库,如何选择将在其上执行操作的物理设备,以及如何准备和创建逻辑设备。
第2章,图像演示,介绍如何在屏幕上显示Vulkan生成的图像。它解释了交换链是什么以及创建交换链所需的参数,因此我们可以使用它进行渲染并查看我们工作的结果。
第3章,命令缓冲区和同步,是将各种操作记录到命令缓冲区并将它们提交到队列,由硬件处理它们。此外,本章还介绍了各种同步机制。
第4章,资源和内存,介绍了两种基本和最重要的资源类型,图像和缓冲区,它们允许我们存储数据。我们将解释如何创建它们,如何为这些资源准备内存,以及如何从我们的应用程序(CPU)上传数据。
第5章,描述符集,解释了如何为着色器提供创建的资源。我们将解释如何准备资源,以便在着色器中使用它们以及如何设置描述符集,这些描述符集构成了应用程序和着色器之间的接口。
第6章,渲染过程和框架缓冲区,展示了如何将绘图操作组织成称为子过程的单独步骤的集合,这些步骤被组织成渲染过程。在本章中,我们还将展示如何准备绘图期间使用的附件(渲染目标)的描述以及如何创建框架缓冲区,这些框架缓冲区根据这些描述绑定特定资源。
第7章,着色器,描述了编程所有可用图形和计算着色器阶段的细节。本章介绍如何使用GLSL编程语言实现着色器程序以及如何将它们转换为SPIR-V程序集 - 这是Vulkan API接受的唯一核心形式。
第8章,图形和计算管道,介绍了创建两个可用管道类型的过程。它们用于设置图形硬件所需的所有参数,以正确处理绘图命令或计算工作。
第9章,命令记录和绘图,是关于记录成功绘制3D模型或调度计算工作所需的所有操作。此外,本章还介绍了各种优化技术,可以帮助提高应用程序的性能。
第10章,Helper Recipes,显示了一套方便的工具,没有3D渲染应用程序可以做到。它显示了如何从文件加载纹理和3D模型以及如何操作着色器内的几何体。
第11章,照明,介绍了简单的漫反射和高光照明等常用的照明技术
计算到法线贴图和阴影贴图技术。
第12章,高级渲染技术,解释了如何实现令人印象深刻的图形技术,这些技术可以在许多流行的3D应用程序中找到,例如游戏和基准测试。

这本书你需要什么
本书介绍了Vulkan图形API的各个方面,它是开放式和多平台的。它可以在Microsoft Windows(版本7及更高版本)或Linux(最好是Ubuntu 16.04或更高版本)系统上使用。 (使用7.0+ / Nougat版操作系统的Android设备也支持Vulkan,但本书提供的代码示例并非设计为在Android OS上执行。)
要执行示例程序或开发我们自己的应用程序,除Windows 7+或Linux操作系统外,还需要支持Vulkan API的图形硬件和驱动程序。请参阅3D图形供应商的站点和/或支持,以检查哪些硬件能够运行支持Vulkan的软件。
使用Windows操作系统时,可以使用Visual Studio Community 2015 IDE(或更新版本)编译代码示例,该IDE免费提供给所有人。要为Visual Studio IDE生成解决方案,需要CMAKE 3.0或更高版本。
在Linux系统上,使用CMAKE 3.0和make工具的组合执行编译。但是样本也可以使用其他工具编译,例如QtCreator。

这本书的用途是谁
本书非常适合熟悉C / C ++语言的开发人员,对图形编程有基本的了解,现在希望在构建下一代计算机图形的过程中利用新的Vulkan API。 对Vulkan的一些基本熟悉将有助于遵循食谱。 想要利用Vulkan API的OpenGL开发人员也会发现本书很有用。

译者注:macOS Mojave / iOS 12已经将openGL列为弃用api,在不久的将来应该会完全放弃对openGL的支持。目前Vulkan已有支持这些操作系统的sdk。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值