OpenGL - Índice buffers dificuldades

Eu tenho um formato de arquivo personalizado que possui todas as informações necessárias para uma malha 3D (exportada do 3ds Max). Eu extraí os dados para vértices, índices de vértices e normais.

Passo ao OpenGL os dados de vértices, índices de vértices e dados normais e processo a malha com uma chamada paraglDrawElements(GL_TRIANGLES,...)

Tudo parece certo, mas os normais. O problema é que os normais têm índices diferentes. E como o OpenGL pode usar apenas um buffer de índice, ele usa esse buffer de índice para os vértices e os normais.

Ficaria muito grato se você pudesse me sugerir como resolver esse problema.

O importante é observar que os dados normais / do vértice não são "classificados" e, portanto, não consigo usar a funcionalidade deglDrawArrays(GL_TRIANGLES,...) - a malha não é renderizada corretamente.

Existe uma maneira / algoritmo que eu possa usar para classificar os dados para que a malha possa ser desenhada corretamente comglDrawArrays(GL_TRIANGLES,..) ? Mas mesmo que exista um algoritmo, há mais um problema - terei que duplicar alguns vértices (porque meu buffer de vértice consiste em vértices únicos - por exemplo, se você tiver um cubo, meu buffer terá apenas 8 vértices) e não tenho certeza Como fazer isso.