我正在阅读有关 OpenGL 和 OpenGLES 的教程,我对glVertexAttribPointer
在这两个 API 中使用该函数有点困惑。
在OpenGL教程中,此函数使用数字偏移作为最后一个参数(通过转换为 const GLVoid*),我认为顶点直接取自当前数组缓冲区。
glVertexAttribPointer(vs_position, 2, GL_FLOAT, GL_TRUE, 5 * sizeof(GLfloat), (const GLvoid*) (3*sizeof(GLfloat)) );
在OpenGLES教程中,最后一个参数直接指向表示顶点的结构:
GLFloat vertices[] = {...definition};
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vertices);
我不明白这两个功能是如何工作的。它们是完全不同的功能吗?