Hay varios factores que contribuyen a cómo se guarda y procesa la geometría en diferentes medios (programas, formatos de archivo, API). Implementé varios programas comerciales de análisis de geometría, así que tengo algo de experiencia con él.
Primero, estoy seguro de que esto no tiene nada que ver con que Unity simplifique nada. Pero en caso de que lo haya hecho, hay varios algoritmos de diezmado que se pueden implementar, pero estoy seguro de que este no es el caso, ya que se supone que un motor de juego no cambia la forma (propiedades geométricas de una malla), pero generalmente puede modificar su conectividad. para que coincida con su estructura óptima.
Algunos de estos factores son:
¿Qué hace que un vértice sea único?
Esto puede variar mucho según cómo el programa, la api o el formato de archivo manejen un vértice. Un vértice puede ser único si tiene una posición única, pero en otros casos es único si tiene algún atributo único. Por ejemplo, si dos vértices comparten la misma posición, pero tienen normales diferentes, deberían "duplicarse" en el caso de OpenGL, esto es especialmente evidente en el caso del cubo que mencionó.
Bordes duros vs lisos.
Las normales pueden dictar si un borde se considera duro o liso, si un vértice contribuye al borde duro, entonces debe duplicarse para que las API de renderizado actuales puedan entender cómo renderizar (sombrear) esta cara correctamente.
Índices
Muchos formatos de archivo permiten que un vértice de la cara tenga varios índices para la posición del vértice / texCoords / normals, este no es el caso de las API de renderizado actuales. Un buen ejemplo de esto es el archivo Obj, esto obligará a Unity a reconstruir los índices y, a menudo, duplicará muchos atributos para que coincidan con los índices de vértice.
Conectividad
Muchos de los vértices que están realmente conectados y son únicos se guardan varias veces, esto tiene que ver con cómo el escritor original de archivos procesó y guardó la malla. La unidad reducirá la cantidad de vértices duplicados (recuerde que si tiene un atributo diferente, entonces no es único) para que sea más eficiente para el almacenamiento y el procesamiento sin sacrificar la calidad.
Esto también tiene que ver con la cantidad de polígonos que permite el archivo original, Obj por ejemplo permite polígonos del lado N, algo que ningún motor de juegos cuerdo no quiere, por lo que termina triangulando la malla y recalculando muchos de sus atributos que a menudo Cambia el número de vértices.