Tengo vértice de paso y sombreadores de fragmentos.¿Cuál es la relación entre gl_Color y gl_FrontColor en sombreadores de vértices y fragmentos
vértice shader
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
fragmento shader
void main(void)
{
gl_FragColor = gl_Color;
}
Aquellos producen representación vacío (negro no color de fondo como glClearBuffer hace).
Si modifico el sombreado de vértices para establecer el gl_FrontColor en gl_Color, se renderiza el buffer de OpenGl intacto ... con el comportamiento esperado de los sombreadores de paso.
void main(void)
{
gl_FrontColor = gl_Color; //Added line
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
Estoy confundido, cómo la configuración de la gl_FrontColor en el vertex shader puede cambiar el valor de la gl_Color en el fragmento? Lo que me estoy perdiendo?
¡Esa es una buena explicación! – vrince