0

我想在 OpenGL 中构建一个带有纹理的闪电。为此,我必须绘制一些连接在一个 X|Y 点的三角形,因此三角形从最后一个点开始。这就是为什么我想连续绘制矩形,现在我的问题是:

哪个draw call更长?第一个有 6 分可取。在第二个中,我两次调用该函数,两次均获得 3 分。

gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 6);  // Both recatangles

/or this here
gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 3);  // One rectangle
gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 3);  // One rectangle

调用第一个更快还是无关紧要?

编辑:我生成随机点的函数,每帧调用一次:

public void update()
{
    for(int i = 0; i < STEPS; i += 3)
    {
        float rnd = random(); // creates random number

        if(points[i] + rnd < startX + 5 && points[i] + rnd > startX - 5)
        {
            points[i] += rnd;
        }
    }

    vertexBuffer.clear();   
    vertexBuffer.put(points);
    vertexBuffer.position(0);
}

这对性能不好还是我怎样才能做得更好?

4

0 回答 0