首先,设置使用着色器程序。然后使用画线glDrawArrays http://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml(或元素,如果您的数据已建立索引)使用 mode=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 中,您可以通过使用所需线的法线/垂直线 (-y,x) 平移端点来创建 4 个点。在 3D 中,您需要确保三角形与摄像机对齐,就像广告牌中一样。