Siempre puede hacer que se repita el búfer "vértice; texcoord". Y solo usa índices como dijiste. Es probablemente más fácil y similar a lo que sabes.
Si quieres guardar algo de memoria. Hay una solución bastante buena y es tener un sprite en el búfer con unir texcoords y crear una matriz de transformación UV y enviarla a su sombreador y multiplicar texcoords con él (en el sombreador de vértices).
No tiene que crear matrices usted mismo si no está de acuerdo con eso. Puede usar funciones GL normales y luego leer la matriz con la glGetFloatv
función. Me gusta esto:
glGetFloatv (GL_MODELVIEW_MATRIX ,&g_TexCoordMat);
Creé una imagen para describirla mejor. glTranslate ang glScale puede verse como si solo se estuvieran moviendo con la base del espacio UV.
Si no sabe cómo enviar la matriz al sombreador, puedo compartir un código con usted.
Editar: imagen agregada
(fuente de spritesheet que utilicé: funorb.com )