Plusieurs facteurs contribuent à la manière dont la géométrie est enregistrée et traitée sur différents supports (programmes, formats de fichiers, API). J'ai mis en œuvre plusieurs programmes d'analyse de géométrie commerciale, j'ai donc une certaine expérience avec cela.
Tout d'abord, je suis sûr que cela n'a rien à voir avec la simplification de Unity. Mais au cas où il le ferait, plusieurs algorithmes de décimation peuvent être mis en œuvre, mais je suis sûr que ce n'est pas le cas, car un moteur de jeu n'est pas censé changer la forme (propriétés géométriques d'un maillage) mais peut généralement modifier sa connectivité pour correspondre à sa structure optimale.
Certains de ces facteurs sont:
Qu'est-ce qui rend un sommet unique?
Cela peut varier considérablement en fonction de la façon dont le programme, l'api ou le format de fichier traite un sommet. Un sommet peut être unique s'il a une position unique, mais dans d'autres cas, il est unique s'il a un attribut unique. Par exemple, si deux sommets partagent la même position, mais ont des normales différentes, ils doivent être "dupliqués" dans le cas d'OpenGL, cela est particulièrement évident dans le cas du cube que vous avez mentionné.
Bords durs et lisses.
Les normales peuvent dicter si un bord est considéré comme dur ou lisse, si un sommet contribue au bord dur, alors il doit être dupliqué pour que les API de rendu actuelles puissent comprendre comment rendre (ombrer) cette face correctement.
Indices
De nombreux formats de fichiers permettent à un sommet de face d'avoir plusieurs indices pour la position du sommet / texCoords / normals, ce n'est pas le cas des API de rendu actuelles. Un bon exemple de ceci est le fichier Obj, cela forcera Unity à reconstruire les index et dupliquera souvent de nombreux attributs pour correspondre aux index de vertex.
Connectivité
Un grand nombre des sommets qui sont réellement connectés et uniques sont enregistrés plusieurs fois, cela a à voir avec la façon dont le rédacteur de fichier d'origine a traité et enregistré le maillage. Unity réduira le nombre de sommets en double (rappelez-vous que s'il a un attribut différent, il n'est pas unique) afin de le rendre plus efficace pour le stockage et le traitement sans sacrifier la qualité.
Cela a également à voir avec le nombre de côtés de polygone autorisés par le fichier d'origine, Obj par exemple, autorise les polygones à côté N, ce que tout moteur de jeu sensé ne veut pas, il finit par trianguler le maillage et recalculer bon nombre de ses attributs qui, souvent, changer le nombre de sommets.