Informe de desarrollo de consola n.o 3

Esta semana, nos concentraremos en la explicación de los distintos tipos de LOD, el significado de LOD y por qué es importante para el rendimiento.

¡Volvimos con otra edición del informe de desarrollo de consola! Esta semana, nos concentraremos en la explicación de los distintos tipos de LOD, el significado de LOD y por qué es importante para el rendimiento.

En PUBG, hay diferentes tipos de niveles de detalles (LOD, por sus siglas en inglés) para muchos objetos. Según las circunstancias, se usa un LOD más o menos alto para alcanzar el equilibrio óptimo entre rendimiento y calidad visual, con el objetivo de lograr la mejor experiencia de juego posible. Por lo general, PUBG utiliza tres niveles de LOD según la situación: LOD 2, LOD 1 o LOD 0, que es el más detallado de los tres. Cuanto más detallado sea el LOD, mayor será el costo de rendimiento. Si bien el rendimiento es importante, también intentamos, en la medida de lo posible, no afectar la jugabilidad por usar un LOD menos detallado.

Es probable que hayan visto los LOD en acción al observar la textura de «plastilina» que tienen algunos edificios a la distancia, mientras los personajes descienden en paracaídas. Este es el primer LOD que se muestra, y es el menos detallado. Al inicio de una partida, los edificios cercanos pueden tener este aspecto, ya que hay muchos objetos que procesar al mismo tiempo. El LOD aumentará a 0 (el nivel más alto) lo antes posible, según el hardware que utilice cada jugador.

También se aplican tres tipos de LOD a los personajes: LOD de malla, LOD de huesos y LOD de nodo de animación. Primero, explicaremos rápidamente algunos detalles del LOD de malla y LOD de huesos, para luego pasar al punto central de este informe de desarrollo de consola, el LOD de nodo de animación.

LOD de malla y LOD de huesos

El LOD de malla determina el LOD del modelo de personaje. Cuando un personaje se encuentra cerca de ti, se renderiza con LOD 0 (el nivel más alto). A medida que te alejas de él, el nivel de detalle con que se renderiza disminuye. Esto sucede en etapas, con LOD 2, LOD 1 y LOD 0. Por lo general, no notarás la transición, ya que esto sucede a una distancia en la que los personajes son muy pequeños en la pantalla.

El LOD de huesos funciona de manera similar, pero define la cantidad de huesos que se activan durante las animaciones de personajes. Es decir que, a medida que la distancia aumenta, el juego necesita procesar animaciones cada vez menos detalladas, y esto permite que no haya pérdida de rendimiento. Cuanto menor sea el LOD, menos vértices y datos de huesos se deben procesar. Esta optimización de los LOD permite mejorar el rendimiento en gran medida.

Si tuviéramos más LOD (3, 4, etc.), el rendimiento aumentaría, ya que se reduciría el costo de rendimiento de la CPU, pero el esfuerzo adicional que se requiere de la memoria, la E/S, etc., es demasiado alto para el hardware de las consolas, así que en este momento no se puede implementar de manera eficaz.

LOD de nodo de animación

Las animaciones también tienen distintos niveles de detalle, llamados LOD de nodo de animación. Sin embargo, no podemos aplicar un rango tan amplio como a los LOD de malla o de huesos, ya que los cambios visuales son muy evidentes.

Las animaciones, tales como correr, mirar al costado o apuntar con la mira, son fundamentales para el control del personaje. Las animaciones relacionadas con el esqueleto del personaje se calculan por miembro, ya que se necesitan animaciones y cálculos independientes para los brazos, las piernas, el cuello, y así sucesivamente.

Desarrollamos un método de LOD adicional basado en el tamaño del modelo de personaje en proporción con la pantalla entera. A continuación, establecimos los parámetros para seleccionar de manera automática y dinámica un LOD de nodo de animación menos detallado para los modelos de personajes solo cuando están a una distancia en la que no se notaría un cambio visual. Esto produce un aumento en el rendimiento sin afectar la jugabilidad o la experiencia visual en un nivel que se pueda percibir.

Importante: En los ejemplos visuales que se muestran más adelante en este informe de desarrollo, los cambios del LOD de nodo de animación se producen en distancias muy pequeñas para que los lectores puedan comprender cómo funcionan. En PUBG, los cambios del LOD de nodo de animación surten efecto en distancias mayores.

Este es el primer ejemplo de cómo funciona el LOD de nodo de animación en el juego:(Esta imagen proviene de un entorno de desarrollo y se usa con fines ilustrativos. En PUBG, el LOD de nodo de animación solo se desactiva en grandes distancias).

En la imagen de arriba, puedes ver las diferencias entre tener el LOD de nodo de animación activado y desactivado.

Cuando el LOD de nodo de animación está desactivado por completo, no se muestran las animaciones realizadas por el personaje, lo cual genera un mejor rendimiento. Sin embargo, cuando un jugador está agachado, la parte inferior del cuerpo debe tener el LOD de nodo de animación activado; de lo contrario, parecería que el jugador está de pie.

Para el siguiente ejemplo, en nuestro entorno de desarrollo, hemos desactivado el LOD de nodo de animación cuando el modelo de personaje ocupa el 10 % de la pantalla para mostrar en más detalle lo que sucede cuando se desactiva el LOD de nodo de animación.

En el juego, el LOD de nodo de animación se desactivará únicamente si el modelo de personaje es demasiado pequeño para que se puedan ver estos cambios.

(Esta imagen proviene de un entorno de desarrollo y se usa con fines ilustrativos. En PUBG, el LOD de nodo de animación solo se desactiva en grandes distancias).

Puede que se estén preguntando qué sucede cuando uno observa con la mira a un enemigo que está lejos.

En este caso, el modelo de personaje que observes ocupará una parte mayor de la pantalla, por lo que el LOD de nodo de animación se activará de manera dinámica según el tamaño del modelo de personaje en proporción con la pantalla. De este modo, no se producirá ningún efecto negativo en la jugabilidad.

A continuación, se puede ver un ejemplo del LOD de nodo de animación en nuestro entorno de desarrollo, configurado para desactivarse cuando el modelo de personaje ocupa un 10 % de la pantalla, para demostrar de manera clara lo que sucede.

(Estas imágenes provienen de un entorno de desarrollo y se usan con fines ilustrativos. En PUBG, el LOD de nodo de animación solo se desactiva en grandes distancias).

Como mencionamos anteriormente, al jugar a PUBG, estos cambios solo surten efecto cuando el modelo de personaje está muy lejos y ocupa una pequeña porción de la pantalla, de modo que no podrás notar los cambios.

Rendimiento con el LOD de nodo de animación

En el siguiente gráfico, se compara el LOD de nodo de animación activado (azul) y el LOD de nodo de animación desactivado (rojo) cuando hay 10 personajes cerca. Al desactivar el LOD de nodo de animación, el rendimiento mejora un 10 %.

* Resultados gráficos medidos en Xbox One X.

Cuantos más modelos de personajes para los que se pueda desactivar el LOD de nodo de animación haya en un área, mayor será el beneficio de rendimiento.

En resumen, algunos efectos de animaciones de los modelos de personajes se desactivan o se reducen cuando la distancia es tan grande que el jugador no puede notar los cambios. De este modo, se utilizan menos recursos y se aumenta el rendimiento.

¡Gracias por leernos! Nos vemos en la próxima edición del informe de desarrollo de consola.

Discuss this article
Share this article