当使用glBegin/glEnd时,它是否相当于一次绘制调用?
我的意思是,当我使用glDrawArrays时,据我所知,这是数据传输到GPU(客户端到服务器端)的关键.当使用glBegin/glEnd时,数据仅在glEnd调用时传输到GPU吗?或者每个glVertex/glNormal/glTexCoord调用一个接一个地传递顶点?
这些工作如何依赖于实现.至少,你可以知道在你调用glVertex/ 之前没有任何东西被转移到GPU glVertexAttrib(0),因为它们会引发一个顶点(即:导致发送属性状态).是否在调用激发函数时立即传输顶点数据,或者它们是否在glEnd时间上缓冲和传输,或者甚至更晚,都完全取决于实现.
还......你不应该在乎.如果您使用的是立即模式,那应该是因为您不关心性能.如果你关心,你将使用缓冲对象和现代渲染功能,而不是立即模式.