我發現下面的代碼:glBufferData&glBufferDataARB
glGenBuffers(1, &m_posVBO);
glBindBuffer(GL_ARRAY_BUFFER, m_posVBO);
glBufferData(GL_ARRAY_BUFFER, size, 0, GL_DYNAMIC_DRAW);
glVertexAttribPointer(particle_attributes::POSITION, 4, GL_FLOAT, GL_FALSE,0,0);
glEnableVertexAttribArray(particle_attributes::POSITION);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glGenBuffers(1, &m_colorVBO);
glBindBuffer(GL_ARRAY_BUFFER, m_colorVBO);
glBufferData(GL_ARRAY_BUFFER, size, 0, GL_DYNAMIC_DRAW);
glVertexAttribPointer(particle_attributes::COLOR, 4, GL_FLOAT, GL_FALSE,0,0);
glEnableVertexAttribArray(particle_attributes::COLOR);
glBindBufferARB(GL_ARRAY_BUFFER, m_posVBO);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, size, m_vPos, GL_DYNAMIC_DRAW_ARB);
glBindBufferARB(GL_ARRAY_BUFFER, m_colorVBO);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, size, m_vCol, GL_DYNAMIC_DRAW_ARB);
glBindBuffer(GL_ARRAY_BUFFER, 0);
我不知道爲什麼都glBufferData()
和glBufferDataARB()
與一個獨特的VBO分別叫,又是什麼值爲零glBindBuffer(GL_ARRAY_BUFFER, 0)
代表什麼?
您能否更具體一些,並解釋您期望代替唯一的VBO或空值? – mins
@mins例如,m_posVBO用於glBufferData和glBufferDataARB的參數。我認爲這些做了兩個緩衝區,看起來很奇怪,因爲我認爲VBO只能有一個緩衝區。 – Mackerel
@mins此外,我知道glBindBuffer的第二個參數是VBO標識值。是一個零有效的VBO標識值? – Mackerel