# 图形着色器
使用 rendering pipeline(渲染管道) 将渲染图形拆分成了多个阶段。 有多个API可以控制图形渲染,Qt支持OpenGL、Metal、Vulcan和Direct3D。 查看简化的OpenGL管道,管道中可以发现顶点和片段着色器。 这些概念也适用于所有其他的渲染管线。
在管道中,顶点着色器接收顶点数据,即构成场景的每个元素的角的位置,并计算一个 gl_Position
。 这意味着顶点着色器可以 移动 图形元素。 在下一阶段,顶点被裁剪、变换和光栅化以用于像素输出。 然后是像素,也称为 fragments(片段) ,通过片段着色器,它计算每个像素的颜色,通过gl_FragColor
变量返回的结果颜色。
总而言之:顶点着色器会为多边形的每个角点(顶点 = 三维中的点)调用,并负责对这些点进行任何三维操作。 为每个像素调用片段(片段 = 像素)着色器并确定该像素的颜色。
由于Qt与底层渲染API相独立,因此Qt依赖于编写着色器的标准语言。 Qt着色器工具依赖于 Vulcan-compatible GLSL(Vulcan兼容的GL着色器语言) ,将在本章的示例中详细了解这一点。
译者注释:GLSL -- OpenGL着色语言(OpenGL Shading Language)