基础绘制指令
现在,绑定图形管线:
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的值。