OpenGL绘制矩形由具有顶点数组的线组成

时间:2014-03-28 00:46:25

标签: opengl

所以我有一个顶点数组batcher,我想用它来渲染行而不是填充的矩形。目前我正在使用glPolyGonMode(),但因为我的“形状”全部上传到图形卡作为三角形,我在矩形的中间运行一条线,如下所示:enter image description here

显然这种情况正在发生,因为矩形有两个三角形。但我想只渲染没有中间线的矩形。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:2)

您无法使用三角形列表执行此操作,三角形是构建3D模型的基本原语。你需要两个三角形来构建矩形。

如果你不想要中间线

  1. 使用GL_QUADS,这是您的请求的简单方法,但要注意GL_QUADS是deprecate from core OpenGL 3.1
  2. 使用LINE_LOOP而不是三角形来构建矩形
  3. 使用GL_QUADS绘图:

    glBegin(GL_QUADS) ;
        glVertex3f(0.0, 0.0, 0.0);
        glVertex3f(0.0, 0.5, 0.0);
        glVertex3f(0.5, 0.5, 0.0);
        glVertex3f(0.5, 0.0, 0.0);
    glEnd() ;
    

    使用LINE_LOOP绘图:

    glBegin(GL_LINE_LOOP) ;
        glVertex3f(0.0, 0.0, 0.0);
        glVertex3f(0.0, 0.5, 0.0);
        glVertex3f(0.5, 0.5, 0.0);
        glVertex3f(0.5, 0.0, 0.0);
    glEnd() ;