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 を使用する必要がありますか?