我有穿透頂點和片段着色器。頂點和片段着色器中的gl_Color和gl_FrontColor之間的關係
頂點着色器
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的價值?我錯過了什麼?
這是一個很好的解釋! – vrince