如何在OpenGL中绘制两个单独的矩形轮廓?

时间:2014-12-04 11:39:05

标签: android opengl-es opengl-es-2.0

在我的第一个项目中,我只需绘制一个矩形轮廓。我通过在绘图调用中使用GLES20.GL_LINE_LOOP和this indices数组来做到这一点。

private final short[] mIndices = new short[] {
        0,1,2, //triangle 1
        2,3,0 // triangle 2
};

现在,我想在第一个上方绘制第二个矩形轮廓。我计算了顶点并设置了这样的索引:

private final short[] mIndices = new short[] {
        0,1,2, //triangle 1
        2,3,0, // triangle 2

        // Upper rectangle
        4,5,6, //triangle 3
        6,7,4, // triangle 4
};

我仍在使用GLES20.GL_LINE_LOOP。问题是绘制的结果并不完全是我想要的。有一条线连接回原点。我想要那条线。

我该怎么办?我猜这行是因为行循环而绘制的,但我不知道可以使用哪种原语。

这是我绘制的对象的样子:

enter image description here

1 个答案:

答案 0 :(得分:1)

不是GLES20;你应该使用LINES并指定你想要绘制的:

private final short[] mIndices = new short[] {
        0,1,1,2, //triangle 1
        2,3,3,0, // triangle 2

        // Upper rectangle
        4,5,5,6, //triangle 3
        6,7,7,4, // triangle 4
};

如果你有GLES30,你可以使用原始重启来启动矩形之间的新循环。

相关问题