我想在 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);
}
这对性能不好还是我怎样才能做得更好?