片段着色器和 glDrawArrays

fragment shader and glDrawArrays

是否可以使用片段着色器来设置渲染的一个颜色通道并且

glColorPointer(...);
glDrawArray();

设置其他 2 个颜色通道。 如果是,我该怎么做?

如果您正在使用可编程管道,那么我还建议您不要使用 glColorPointer glVertexPointer 和矩阵堆栈,而是使用 glVertexAttribPointer 并将转换矩阵作为统一传递。

在片段着色器中你会做

gl_FragColor = vec4(channel1, channels2_3.xy, 1);

其中 channel1 和 channel2_3 可以来自统一或从顶点着色器传递的属性。