Kev*_*ity 4 opengl optimization 2d
我在openGL中绘制四边形.我的问题是,是否有任何额外的性能提升:
// Method #1
glBegin(GL_QUADS);
// Define vertices for 10 quads
glEnd();
Run Code Online (Sandbox Code Playgroud)
...为10个四边形中的每一个执行此操作:
// Method #2
glBegin(GL_QUADS);
// Define vertices for first quad
glEnd();
glBegin(GL_QUADS);
// Define vertices for second quad
glEnd();
//etc...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,所有四边形都使用相同的纹理.
Jes*_*der 10
是的,第一个更快,因为每次调用glBegin或glEnd更改OpenGL状态.
然而,更好的是,与一次调用glBegin和glEnd(如果你有大量顶点)一样,是用glVertexPointer(和朋友)传递所有顶点,然后调用glDrawArrays或glDrawElements.这将一举将所有顶点发送到GPU,而不是通过glVertex3f重复调用递增.