Las mallas son recursos extremadamente habituales en videojuegos. Son una serie de puntos tridimensionales conectados, normalmente estáticos (no cambiarán de forma en ningún momento.) que sirven para representar visualmente casi todo lo que podemos encontrar en el mundo virtual.
Para cambiar hacer más grande o pequeño un recurso hay que cambiar de escala. El propio Static Mesh Editor permite hacerlo cambiando la Build Scale en Build Settings y dándole a Apply Changes. Otra opción sería editar la propia malla aprovechando el Modeling Mode de Unreal Engine (con la opción Transform > BakeRS que viene de Bake Rotation & Scale)).
Algunas de las propiedades que podemos cambiar es el nivel de detalle (level of detail, o LOD), para que aquellas mallas que veremos de lejos o que tienen menos importancia, sean más simples y consuman menos recursos. El nivel 0 será el de máxima calidad y ese número irá aumentando (LOD 1, LOD 2…) según rebajemos el detalle, generalmente porque la malla ocupa menos en pantalla.
Un caso especial de malla es la malla de navegación que Unreal Engine es capaz de generar automáticamente para ayudar a la IA de los personajes no jugadores a planificar rutas sobre los niveles.
Usando el componente BlueprintSplineMeshComponent es posible tener una malla que puede ser modificada («retorcida») hasta cierto punto. E incluso existen objetos de clase DestructibleMesh que pueden fracturarse, mostrando incluso caras internas como cuando se despedaza un bloque sólido de piedra.
Geometría virtualizada
Es posible usar mallas con muchísimos polígonos sin afectar el rendimiento si se usa geometría virtualizada. Normalmente esto implica hacer streaming sólo de la información visible en pantalla y sólo con el nivel de detalle que se considere necesario según el tamaño que ocupen en pantalla. En Unreal Engine el sistema Nanite es el encargado de hacer esto.
Carlos Coronado es un desarrollador español que tiene algunos videos criticando Nanite, pues en la práctica, a la hora de hacer entornos abiertos con vegetación, tiene muchos problemas.
Más información
Se recomienda consultar estos documentos:
- Creación y uso de LOD en Unreal Engine | Unreal Engine Documentación | Epic Developer Community
- Nanite Virtualized Geometry in Unreal Engine | Unreal Engine Documentation | Epic Developer Community
- Static Meshes | Unreal Engine Documentation | Epic Developer Community
Esta página está licenciada bajo CC BY-NC-SA 4.0 por Laboratorios Narratech.
Referencias