Ответ 1
Сначала установите программу shaderprogram. Затем нарисуйте линии, используя glDrawArrays (или элементы, если ваши данные проиндексированы) с режимом = GL_LINES или одним из других режимов рисования линии.
Здесь приведен пример кода для двумерных линий с различным цветом на каждом конце. Если режим затенения настроен на плавное, OpenGL будет интерполировать цвета вдоль линии.
struct LineSegment_t
{
float x1, y1;
float r1,g1,b1,a1;
float x2, y2;
float r2,g2,b2,a2;
};
int num_verts = lines.size()*2;
glBindVertexArray( line_vao ); // setup for the layout of LineSegment_t
glBindBuffer(GL_ARRAY_BUFFER, LineBufferObject);
glBufferData(GL_ARRAY_BUFFER, sizeof(LineSegment_t)/2 * num_verts, &lines[0], GL_DYNAMIC_DRAW);
glDrawArrays(GL_LINES, 0, num_verts );
Если вам нужна большая гибкость, вы можете рисовать линии, используя треугольники, создавая прямоугольник (4 точки) от конечных точек линии. В 2D вы можете создать 4 точки, переведя конечные точки, используя линию normal/perpendicular (-y, x) по желаемой строке с. В 3D вам нужно убедиться, что треугольники выровнены по отношению к камере, как в афише.