Я работаю над проектом OpenGL на C ++ и хочу научиться использовать шейдеры GLSL.Проблема в том, что, хотя я могу завершить свою программу без использования своих собственных шейдеров, я хочу написать свои собственные (в настоящее время я не загружаю шейдеры самостоятельно - не уверен, что OpenGL по умолчанию есть).
Чтобы нарисовать на изображении несколько линий (вершины которых хранятся в векторе, а значения цветов - в другом векторе), я использую следующий код для просмотра и рендеринга их при каждом обновлении кадра - я использую функцию отображения GLUTдля этого.
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
vector<point2>::iterator it;
int c_index = 0;
for(it=points.begin(); it<points.end(); it++){
if(c_index % 2 == 0) //set color for every pair of points (each line)
glColor3f(colors[c_index/2][0], colors[c_index/2][1], colors[c_index/2][2]);
c_index++;
glVertex2f(it->x, it->y); //set vertex
}
glEnd();
glFlush();
Теперь проблема в том, что когда я пытаюсь использовать шейдеры, которые я нашел в другой примерной программе, все цвета - красные (даже если шейдеры явно не определяют какие-либо цвета).Это также заставляет glColor3f ничего не делать.
Мой вопрос в том, что если я могу использовать шейдеры для этого, как должны выглядеть шейдеры и как мне их загружать?