OpenGL,glBegin / glEnd相当于一次绘制调用?

时间:2013-08-24 15:31:52

标签: opengl

使用glBegin / glEnd时,是否相当于一次绘制调用?

我的意思是,当我使用glDrawArrays时,据我所知,这是数据传输到GPU(客户端到服务器端)的关键。当使用glBegin / glEnd时,数据仅在glEnd调用时传输到GPU吗?或者每个glVertex / glNormal / glTexCoord调用一个接一个地传递顶点?

1 个答案:

答案 0 :(得分:5)

这些工作如何依赖于实现。至少,您可以知道在调用glVertex / glVertexAttrib(0)之前没有任何内容传输到GPU,因为这些是引发顶点的原因(即:导致属性状态被发送)。是否在调用激发函数时立即传输顶点数据,或者在glEnd时间,或者甚至更晚的时间缓冲和传输顶点数据,完全取决于实现。

另外......你不应该在乎。如果您使用的是立即模式,那应该是因为您不关心性能。如果你关心,你将使用缓冲对象和现代渲染功能,而不是立即模式。