У меня есть сквозные вершинные и фрагментные шейдеры.
вершинный шейдер
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 во фрагменте один? Что мне не хватает?