OpenGL:渐变的片段与顶点着色器?

OpenGL: Fragment vs Vertex shader for gradients?

我是 OpenGL 的新手,我正在尝试了解顶点和片段着色器。如果您定义每个顶点的颜色,您似乎可以使用顶点着色器制作渐变,但如果您使用 FragCoord 变量,您似乎也可以使用片段着色器制作渐变。

我的问题是,既然您似乎能够使用两种着色器制作颜色渐变,那么使用哪种更好?我猜顶点着色器速度更快或其他东西,因为每个人似乎都在使用它们,但我只是想确定一下。

... since everyone seems to use them

使用顶点 片段着色器在现代 OpenGL 中是强制渲染所有东西的。 所以每个人都使用 both 。顶点着色器负责计算顶点的颜色,OpenGL 负责在它们之间进行插值,片段着色器负责将插值值写入输出颜色附件。

† 好的,您也可以将计算着色器与 imageStore 一起使用,但我在这里谈论的是光栅化管道。