openGL中 GL_LINES 与GL_LINE_STRIP 的区别

在绘制直线时,特别是一系列连续的点时,要特别注意 绘线方式GL_LINES 和GL_LINE_STRIP

  • GL_LINES :每一对顶点被解释为一条直线。
  • GL_LINE_STRIP: 一系列的连续直线。

当绘制的点只有两个时,如下代码

 glBegin( GL_LINES);
 glVertex*( V1);
 glVertex*( V2);
 glEnd();

与如下代码:

glBegin( GL_LINE_STRIP)
glVertex*( V1);
glVertex*( V2);
glEnd();

,GL_LINE与GL_LINE_STRIP绘线方式没有差异,绘制结果都是一条连接点V1与点V2的一条直线。

       当绘制的是一系列点的时候,比如点集为:V1, V2, V3, V4, V5, V6; GL_LINES与GL_LINE_STRIP的区别就会很明显。如下代码:

glBegin( GL_LINES);
glVertex*( V1);
glVertex*( V2);

.....

glVertex*( V6);
glEnd();

上述程序的绘制结果是:V1与V2之间, V3与V4之间, V5与V6之间是直线连接的, V2与V3, V4与V5之间没有直线连接;如下为在棋盘格上以GL_LINES绘制的直线,可以看到直线之间有明显的断开:

openGL中 GL_LINES 与GL_LINE_STRIP 的区别_第1张图片

如下代码:

glBegin( GL_LINE_STRIP);
glVertex*( V1);
glVertex*( V2);

.....
glVertex*( V6);
glEnd();

 上述程序的绘制结果是:V1与V2, V2与V3, V3与V4, V4与V5,V5与V6之间都是直线连接的。如下为在棋盘格上以GL_LINE_STRIP绘制的直线, 没有断开。

openGL中 GL_LINES 与GL_LINE_STRIP 的区别_第2张图片

本文转自:OpenGL绘线方式 GL_LINES与GL_LINE_STRIP的区别 

你可能感兴趣的:(#,OpenGL技术点,GL_LINE_STRIP,GL_LINES,OPenGL)