基础绘制指令

现在,绑定图形管线:

vkCmdBindPipeline(commandBuffers[i], VK_PIPELINE_BIND_POINT_GRAPHICS, graphicsPipeline);

vkCmdBindPipeline函数的第二个参数用于指定管线对象是图形管线还是计算管线。至此,我们已经提交了需要图形管线执行的指令,以及片段着色器使用的附着,可以开始调用指令进行三角形的绘制操作:

vkCmdDraw(commandBuffers[i], 3, 1, 0, 0);

我们使用vkCmdDraw函数来提交绘制操作到指令缓冲,它的第一个参数是记录有要执行的指令的指令缓冲对象,它的剩余参数依次是:

  • vertexCount:尽管这里我们没有使用顶点缓冲,但仍然需要指定三个顶点用于三角形的绘制。

  • instanceCount:用于实例渲染,为1时表示不进行实例渲染。

  • firstVertex:用于定义着色器变量gl_VertexIndex的值。

  • firstInstance:用于定义着色器变量gl_InstanceIndex的值。