Como obter normais planas em um cubo

Estou usando o OpenGL sem os recursos obsoletos e meu cálculo de luz é feito no fragment shader. Então, estou fazendo um sombreamento suave.

Meu problema é que, quando estou desenhando um cubo, preciso de normais normais. Por normais planas quero dizer que cada fragmento gerado em uma face tem o mesmo normal.

Minha solução para isso até agora é gerar diferentes vértices para cada face. Então, em vez de ter 8 vértices, agora tenho 24 (6 * 4) vértices.

Mas isso parece errado para mim, replicando os vértices. Existe uma maneira melhor de obter normais normais?

Atualização: Estou usando o OpenGL versão 3.3.0, ainda não tenho suporte para o OpenGL 4.

questionAnswers(3)

yourAnswerToTheQuestion