我運行一個示例OpenGL代碼,我移植到OpenGL ES 2.0(實際上並沒有太多要做),但我不禁想知道glBufferData
函數是什麼。最初來源是這樣的:OpenGL ES中的'glBufferData'是什麼?
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * 2 * 6, quad, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 2, (void *) 0);
但我可以成功地簡化爲:
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 2, quad);
也就是說,我可以省略glBufferData
功能只是在glVertexAttribPointer
使用一個有效的指針成四陣列。
那麼,有誰能解釋glBufferData
函數的功能嗎?從我所做的事情看,這似乎是多餘的,但這一定是因爲我嚴重缺乏API的知識。事實上,我嘗試閱讀khronos.org上的文檔,但這並沒有幫助我理解它的用法。
除了答案中的內容之外,我相信你在這裏尋找的概念的名稱是一個頂點緩衝對象(VBO):http://www.opengl.org/wiki/Vertex_Buffer_Object – 2011-03-25 15:13:55