在这一点上,我们有了一个绘制循环,并且有了一种使用计算着色器绘制到图像的方法,但我们还不能渲染几何体。要渲染几何体,我们需要设置一个图形管线,其中将包含使用 GPU 内部特殊硬件绘制几何体所需的所有配置选项。要渲染东西,我们必须了解 Vulkan 渲染管线是如何工作的。
渲染管线
GPU 具有许多用于渲染几何体的功能。除了普通的通用计算单元外,它们还有许多额外的硬件。这些额外的硬件使它们能够以极快的速度和效率绘制三角形或其他图元。
将 GPU 视为一条装配线。它有许多不同的部件做不同的事情,输出是在图像上渲染的像素。这个“装配线”就是我们所说的图形管线。
在图形管线中,数据和程序输入,像素输出。图形程序员的工作是确保自定义此管线以获得所需的结果。
完整的 Vulkan 图形管线非常复杂,因此我们将查看其简化版本。当我们编写用于构建渲染管线的配置时,我们将更详细地介绍各个阶段。
数据 -> 顶点着色器 -> 光栅化 -> 片段着色器 -> 渲染输出。
2 个着色器阶段将运行自定义程序,这些程序将执行我们想要的任何操作。光栅化和渲染输出是固定阶段,我们只能调整它们的参数和配置。
首先,我们需要数据。数据可以是任何我们想要的东西,它将是我们的纹理、3D 模型、材质参数,任何东西。一切都围绕着数据被各个阶段转换,直到它变成屏幕上的像素。
顶点着色器是一个着色器,它将为我们绘制的每个顶点运行一次。它的工作是以 GPU 理解的方式输出顶点位置和顶点参数,以供光栅化阶段使用。
光栅化阶段将获取顶点着色器生成的顶点,并找到三角形覆盖的像素。这些像素将被发送到片段着色器。这部分有很多配置选项,我们需要在构建图形管线时填写。
片段着色器负责将这些像素变成输出的真实彩色像素,每个像素运行一次着色器,这些像素由光栅化阶段发送给它。
使用最终的彩色像素,我们通过渲染输出阶段将它们放在输出帧缓冲区上。这里有多个固定功能硬件配置步骤,使我们能够执行诸如混合像素或深度测试之类的操作。
下一篇文章我们将使用所有这些绘制一个三角形。
下一篇: 设置渲染管线