关于本书

本书主要介绍了Vulkan的图形和计算API。Vulkan是Khronos组织(该组织以OpenGL闻名)发布的新一代图形API。这一新的API可以更好地描述应用程序所需的运算,并且相比于OpenGL和Direct3D,拥有更好的性能,更轻便的驱动程序。Vulkan在设计上类似于Direct3D 12和Metal,但比之后两者,Vulkan是跨平台的,可以在Windows,Linux和Android平台上使用。

使用Vulkan不是没有缺点,更精准的控制,意味着更繁琐的细节。我们需要在应用程序中做更多的工作,这包括设置初始时使用的帧缓冲,以及对缓冲和纹理图像的内存管理。

Vulkan并非适合所有人。它是为追求计算机图形性能极限的狂热分子设计的。如果你对游戏开发更感兴趣,或许OpenGL和Direct3D更适合你,它们在短期内仍然会是主流,并且目前还有大量的设备尚未支持Vulkan。除此之外,也可以使用Unreal Engine或Unity这类引擎,它们可以通过封装好的底层完全透明地使用Vulkan。

下面是学习本书的一些先决条件:

  • 支持Vulkan的显卡以及驱动程序(NVIDIA,AMD,Intel)

  • C++编程经验(熟悉RAII,初始化列表)

  • 支持C++11的编译器(Visual Studio 2013+,GCC 4.8+)

  • 三维计算机图形学基础

本书不假设读者了解OpenGL和Direct3D,但需要读者了解基本的三维计算机图形学知识。

读者可以使用C来替换C++,但这样做需要读者对我们的代码进行大量修改。我们的代码使用了类,RAII等C++特性。