Você sempre pode repetir o "vértice; texcoord" do buffer longo. E apenas use índices como você disse. É provavelmente mais fácil e meio parecido com o que você sabe.
Se você deseja economizar um pouco de memória. Existe uma solução bastante interessante e é ter um sprite em buffer com unir texcoords e criar matriz de transformação de UVs, enviá-lo ao seu shader e multiplicar texcoords com ele (no vértice shader).
Você não precisa criar matrizes sozinho, se não estiver bem com isso. Você pode simplesmente usar funções GL regulares e então ler matriz com a glGetFloatv
função. Como isso:
glGetFloatv (GL_MODELVIEW_MATRIX ,&g_TexCoordMat);
Eu criei a imagem para descrevê-la melhor. glTranslate ang glScale pode parecer que eles estão apenas se movendo com a base de espaço UV.
Se você não sabe como enviar a matriz para o shader, posso compartilhar um código com você.
Editar: imagem adicionada
(fonte para a planilha que usei: funorb.com )