Classificação em profundidade do OpenGL

Estou fazendo transparência básica de objetos usando a classificação de profundidade. Como profundidade, uso a distância (ao quadrado) da câmera a todos os triângulos do modelo, calculados como {(x1 + x2 + x3) / 3, (y1 + y2 + y3) / 3, (z1 + z2 + z3) / 3}. Embora o resultado seja quase bom, mas existem alguns erros.

cabeça de macaco sem classificação

com classificação

Existe algo que eu possa fazer sobre esses erros?

questionAnswers(2)

yourAnswerToTheQuestion