Reducir el número de polígonos, esto siempre te lo dicen pero nunca te cuentan el porqué y en qué casos si aplica una reducción de polígonos y en qué casos no, normalmente se dice que es para reducir el trabajo a la gráfica y volvemos a lo mismo que ocurre con el punto de la bazuca y el mosquito, en este caso si estas haciendo un objeto pequeño poco relevante con muchos polígonos, lo estas haciendo mal y lo mismo aplica para el caso contrario.
También la cantidad es dependiente de la plataforma para la cual está pensada, lo mismo aplica para la cantidad de materiales en un objeto, las coordenadas UV, las colisiones y los niveles de detalle.
¿Qué tener en consideración para reducir la cantidad de polígonos?
Para esto hay que entender un poco a la gráfica, los software de modelado 3D solo tienen en cuenta la cantidad total de vértices, porque estos están solo pensados para el renderizado de video, pero en videojuego la cosa cambia, suponiendo que tuviéramos una esfera con 300 vértices, estos pueden ser 300 o 900 para la gráfica dependiendo de si esta esfera tiene una superficie lisa y suave o plana lleno de esquinas, también puede aumentar por las costuras hechas para el texturizado de coordenadas UV, puede aumentar si los bordes están definidos como duros, puede aumentar por diferencias de color en un mismo vértice, lo mismo ocurre por grupos de suavizado, en todos estos casos aumenta la cantidad de vértices dentro de la gráfica. así que parece algo casi imposible conservar esos 300 vértices.
Así que la cantidad de vértices que resulte al final no importa tanto, lo importante es como estratégicamente modeles el objeto en cuestión, por ejemplo si estás diseñando el filo de una hoja de espada, puedes aplicar algunos bordes duros en el filo y bordes suaves en el resto, de esta forma se verá aparentemente suave donde tendrá que verse suave y duro donde tiene que verse duro, no de usar tontamente un modificador de subdivisión.
Lo importante es que te enfoque en las texturas en vez de los vértices, no importa si tienes que romper apunta de costuras el modelo, la prioridad es usar la menor cantidad de texturas posible.
Tampoco exageres, solo que sea un promedio a tener en cuenta de ambas, los vértices según los niveles de detalle, depende mucho de la plataforma a la que tienes destinado el modelo, un ejemplo sería un cilindro para consolas puede que esté bien un cilindro de 32 caras, para móviles con 8 caras esta bien.
Combinar mallas estáticas.
Combinar mallas tiene la misma idea de la textura atlas, la idea es llevar solo un dibujado a la gráfica pero este solo debe hacerse hasta un límite de 65000 vértices, sólo para objetos estáticos, en lo posible usando un solo material y por lo tanto una sola textura, aunque unity gestiona muy bien esto, debes tenerlo en cuenta.
Niveles de detalle.
Este es un punto que considero de cuidado y que quizás nadie se atreve a analizarlo a profundidad, la técnica de niveles de detalle consiste en crear varias versiones de un mismo modelo, variando la cantidad de vértices de LOD0 máximo detalle hasta LODn poco detalle, esta técnica es solo útil si varía la profundidad a la que ves el objeto igual que ocurre con los mipMaps, sin embargo esta técnica tiene el problema de que gastas mas disco duro grabando los mismo modelos y gastando tiempo valioso para el artista, además dejando dichos modelos cargados en memoria, otro problema que tiene es que no sirve para combinar con mallas estáticas.
La solución a este problema y siendo una solución poco tenido en cuenta es crear un modelo de mediano o poco poligonaje y usar un shader de teselación, evitando todos los problemas anteriores, pero debes tener en cuenta si el dispositivo de destino usará directX 11 y esto tiene un coste en consumo de memoria, pero este consumo es menor a los problemas anterior mencionados.
Consideraciones con los objetos dinámicos.
Aún queda esos objetos que están en movimiento, y algunos de estos se pueden salvar a través del dynamic batching de unity, pero el modelo de tener ciertos requisitos, no debe sobrepasar los 300 vértices, la escala no debe superar el metro cúbico, pero ya toca tratar los que no entran en esta categoría, ya sea ocultandolo si se sale de la cámara o desactivando todo el objeto si el objeto está muy lejos pero esto ya tiene más que ver con las scripts en vez de con las gráficas.
Conclusiones
En resumen, no todo lo que te cuentan es verdad, el bajo poligonaje es solo estricto en dispositivos pobres en memoria de video, es mas importante el control de texturas y de materiales que el número de vértices.
Hay trucos como las capas de suavizado que permite suavizar algunos bordes y endurecer otros y con este juego de bordes duros y suaves se da el efecto de que el modelado es muy detallado, este truco lo aplican mucho los mmo para móviles por ser barato.
Por último, la clave del rendimiento en modelos, está en la moderación de todas las propiedades o en analizar cuál priorizar según las características del proyecto.
espero que estos consejos hayan sido de ayuda, feliz tarde a todos.
Comments