我有直通顶点和片段着色器。
顶点着色器
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
片段着色器
void main(void)
{
gl_FragColor = gl_Color;
}
那些会产生空渲染(黑色而不是像 glClearBuffer 那样的背景颜色)。
如果我修改顶点着色器以将 gl_FrontColor 设置为 gl_Color 它会渲染未触及的 OpenGl 缓冲区......这是传递着色器的预期行为。
void main(void)
{
gl_FrontColor = gl_Color; //Added line
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
我很困惑,顶点着色器中的 gl_FrontColor 设置如何改变片段一中 gl_Color 的值?我错过了什么?