画出一吨广场的最快方法?

时间:2014-03-05 17:59:12

标签: python opengl pyglet

我在名为square的列表中有一组Square对象。我遍历列表并单独绘制每个方块,我想知道是否有更快的方法来做到这一点?我不认为GL_QUAD会起作用,因为当我只是想要轮廓时,它会填充正方形。

这是我的代码

    for sq in squares:
            x1, y1 = sq.point
            x2, y2 = x1 + sq.length - 1, y1 + sq.length - 1
            batch.add(2, pyglet.gl.GL_LINES, None, ('v2i', (x1, y1, x1, y2)))
            batch.add(2, pyglet.gl.GL_LINES, None, ('v2i', (x1, y1, x2, y1)))
            batch.add(2, pyglet.gl.GL_LINES, None, ('v2i', (x2, y2, x1, y2)))
            batch.add(2, pyglet.gl.GL_LINES, None, ('v2i', (x2, y2, x2, y1)))

    batch.draw()

(x1,y1)将是方形的左下角,(x2,y2)是右上角。

1 个答案:

答案 0 :(得分:1)

在OpenGL中,您可以通过调用:

来避免填充多边形
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

要再次填充多边形,请使用:

glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

这样,您可以使用四边形或两个三角形。使用此(glPolygonMode)和顶点数组应该可以大大提高性能。