我在 C++ 中创建了一个交错的顶点数组:
struct vertex
{
GLfloat position[3];
GLbyte normal[3];
};
std::vector< vertex > vertices;
// fill in vertices...
我将数组复制到 gl 缓冲区:
GLuint vertsBuffer;
glBindBuffer (GL_ARRAY_BUFFER, vertsBuffer);
glBufferData (GL_ARRAY_BUFFER, vertices.size () * sizeof (vertex), vertices.data (), GL_STATIC_DRAW);
例如,是否可以将 glNormalPointer 与这样的交错数据一起使用?
glBindBuffer (GL_ARRAY_BUFFER, vertsBuffer);
glEnableClientState (GL_NORMAL_ARRAY);
glNormalPointer (GL_BYTE, sizeof (vertex), (GLvoid*) offsetof (vertex, normal));
还是我必须改用 glVertexAttribPointer ?