I was looking at the Particles examples of CUDA and I couldn’t find where to they make the link between the array of vertices and the variables in the shader. From what I’ve read and actually the way I’ve been doing it is
…
glGenBuffers(1, &VBO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData( … )
glEnableVertexAttribArray(0);
glVertexAttribPointer( … );
…
however what I found in Nvidia’s example looks like
glBindBufferARB(GL_ARRAY_BUFFER_ARB, m_vbo);
glVertexPointer(4, GL_FLOAT, 0, 0);
glEnableClientState(GL_VERTEX_ARRAY);
if (m_colorVBO)
{
glBindBufferARB(GL_ARRAY_BUFFER_ARB, m_colorVBO);
glColorPointer(4, GL_FLOAT, 0, 0);
glEnableClientState(GL_COLOR_ARRAY);
}
glDrawArrays(GL_POINTS, 0, m_numParticles);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);
which I believe is something similar to what I do. So my questions are
What’s the difference between those two ways of passing data to the shader?
Should I prefer one over the other?