Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL使用顶点数组绘制由直线组成的矩形_Opengl - Fatal编程技术网

OpenGL使用顶点数组绘制由直线组成的矩形

OpenGL使用顶点数组绘制由直线组成的矩形,opengl,Opengl,所以我有一个顶点数组批处理程序,我想用它来渲染矩形,这些矩形是直线而不是填充的。目前我使用的是glPolyGonMode(),但由于我的“形状”都是以三角形的形式上传到图形卡上的,因此我在矩形的中间有一条线,如下所示: 显然,这是因为一个矩形有两个三角形。但是我只想渲染没有中间线的矩形。我怎样才能做到这一点呢?三角形列表不能做到这一点,三角形是建立三维模型的基本元素。你需要两个三角形来组成这个矩形 如果你不想要中间路线 使用GL_四边形,这是满足您的请求的最简单的方法,但请注意GL_四边形是 使

所以我有一个顶点数组批处理程序,我想用它来渲染矩形,这些矩形是直线而不是填充的。目前我使用的是
glPolyGonMode()
,但由于我的“形状”都是以三角形的形式上传到图形卡上的,因此我在矩形的中间有一条线,如下所示:


显然,这是因为一个矩形有两个三角形。但是我只想渲染没有中间线的矩形。我怎样才能做到这一点呢?

三角形列表不能做到这一点,三角形是建立三维模型的基本元素。你需要两个三角形来组成这个矩形

如果你不想要中间路线

  • 使用GL_四边形,这是满足您的请求的最简单的方法,但请注意GL_四边形是
  • 使用线环而不是三角形来构建矩形
  • 使用GL_四边形绘制:

    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() ;
    
    使用线_循环绘制:

    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() ;
    

    线列表是什么意思?我是说线,4条线组成一个矩形。理论上,在线框模式下绘制四边形(不是三角形)会产生相同的结果。但我从未尝试过(也从未想过)。@是的,我忘了OpenGL中有quad类型,稍后将更新我的答案。谢谢@凯尔塔绘制与GL_四元工作,和GL_线_循环也工作,我更新了我的答案,谢谢!