Abordagem para escrever um shader de fragmento GLSL com uma cor sólida por triângulo / face

Tenho dados de vértice e triângulo que contêm uma cor para cadatriângul (face), não para cada vértice. ou seja, um único vértice é compartilhado por várias faces, cada uma com uma cor potencialmente diferente.

Como devo abordar esse problema no GLSL para obter uma atribuição de cores sólidas para cadafac sendo processado? Calcular e atribuir um buffer de "cor de vértice" calculando a média das cores dos polys vizinhos de um vértice é fácil, mas é claro que isso produz um resultado embaçado, onde as cores são interpoladas no sombreador de fragmentos.

O que eu realmente preciso não deve ter valores de cores interpolados, terei cerca de 40 mil triângulos sombreados com aproximadamente 15 cores sólidas possíveis, uma vez que esteja funcionando conforme o esperad

questionAnswers(3)

yourAnswerToTheQuestion