Informe de desarrollo de consola #2

En el post de hoy, hablaremos del tiempo de GPU y cómo varios factores son utilizados para reducirlo.

Hola a todos:
¡Bienvenidos a la segunda edición de la serie “Informe de desarrollo de consola”!

Para aquellos que se perdieron el primer contenido de esta serie donde hablamos del “campo visual y cómo afecta al rendimiento del juego”, podéis consultarlo aquí: [Xbox] [PS4]

En la publicación de hoy, hablaremos del tiempo de la GPU y de los factores que pueden reducirlo.

¿Qué es el tiempo de la GPU?

En pocas palabras, el tiempo de la GPU es el tiempo que tarda la GPU (unidad de procesamiento gráfico) en calcular un único fotograma. Cuantos más cálculos de GPU se necesiten, mayor será dicho tiempo. El tiempo de la GPU contribuye directamente a los FPS (fotogramas por segundo) que veis al jugar, por lo que el aumento del tiempo puede afectar directamente al rendimiento. Existen numerosos factores que afectan al tiempo de la GPU, incluido el tiempo de renderizado de los diferentes elementos visuales del juego que aparecen en pantalla.
La GPU es un procesador que se encarga de los gráficos. Dibuja millones de píxeles en cada fotograma (varias veces por segundo). El número de píxeles en pantalla viene determinado por la resolución utilizada. Cuanto mayor sea la resolución, más píxeles y más detalles se pueden mostrar en la imagen de cada fotograma, pero esto también requiere más potencia de procesamiento.

Al comparar la resolución 4K con las más utilizadas de 1080p, la resolución 4K tiene cuatro veces más píxeles. Esto significa que la cantidad de datos y procesado de la GPU se multiplica por 4, lo que a su vez aumenta el tiempo de procesamiento.

Resolución dinámica
Nota: estamos optimizando la opción de resolución dinámica y próximamente estará disponible tanto en PS4 como en Xbox One mediante una actualización.

La resolución dinámica es una función por la que la resolución cambia de forma dinámica en función del número de cálculos gráficos necesarios. Modifica la resolución de 1440p a 4K en tiempo real, con una frecuencia de actualización variable. Al jugar a una partida, si la GPU está sometida a una elevada carga de procesamiento, la resolución se reducirá automáticamente de forma temporal con el fin de garantizar un rendimiento estable.

En el siguiente gráfico nos gustaría enseñaros cómo la opción de resolución dinámica afecta a los tiempos de la GPU. Tened en cuenta que el gráfico mide el tiempo de la GPU en milisegundos y que no muestra los fotogramas por segundo. Así que, en este caso, cuanto más bajo, mejor.

1.png.3776237aed354847a0ebc0e9ebc5e088.png
* El tiempo de la GPU mostrado en el gráfico anterior se ha calculado con una Xbox One X.

Se observa una mejora del 20 % en la velocidad de procesamiento de los tiempos de la GPU con la resolución dinámica activada. Un menor tiempo de GPU significa que esta puede procesar cada fotograma con mayor rapidez, lo que se traduce en un rendimiento mejor y más estable.

Selección de instancias de la GPU

La función de selección de instancias de la GPU está disponible desde la versión 1.0 para Xbox One X y PS4 Pro. Además, hemos realizado muchas mejoras desde su implementación inicial para aumentar el rendimiento. En el futuro realizaremos mejoras adicionales en la selección de instancias de la GPU, incluida la próxima actualización del servidor en vivo. A continuación, podéis leer más sobre los próximos cambios.

Tened en cuenta que las próximas mejoras en la selección de instancias de la GPU siguen optimizándose para la primera generación de PS4 y de Xbox One y S. Estas se implementarán en una fecha posterior.

Veréis muchos bosques densos en Erangel, Sanhok y Vikendi. Para lograr el mejor rendimiento posible, los árboles con el mismo modelo se renderizan usando “instancias”. Esto reduce la carga de procesamiento al dibujar un solo árbol, por lo que la GPU puede dibujar el bosque que se muestra a continuación sin tener que esperar a que se realicen más peticiones gráficas (solicitudes de recursos para que la GPU realice tareas).

2.png.8a7c35fd8ba3dabf43b093a55622bb9d.png

Al disminuir el número de peticiones de dibujado usando numerosos árboles con el mismo modelo dentro de la distancia de visualización, se reduce la carga de procesamiento total de los árboles y mejora el rendimiento.

Pero ¿qué pasaría al acercarnos con una mira 8x?

3.png.7837633111c3c17d7ed530df089dd2a8.png

El nivel de detalle (LOD) desempeña un papel importante para lograr el rendimiento deseado, ya que los objetos se dibujan en diferentes niveles de calidad dependiendo de la distancia con el jugador. En un estado normal (sin acercar la vista), solo los árboles más cercanos dentro de la primera instancia se dibujan en LOD 0 (el nivel de detalle más alto). Pero cuando la vista se acerca, todas las instancias, incluidos los árboles que se ven a través de la mira, se dibujan en LOD 0, lo que aumenta el tiempo de la GPU (disminuye el rendimiento) de forma significativa.

Al acercar la vista, la distancia de visión se amplía para que los árboles lejanos se puedan ver con mayor detalle. En la figura anterior, solo se ven de 3 a 7 árboles a través de la mira, pero la GPU intentará dibujar cada instancia dentro del campo de visión. El uso de instancias en este caso es una desventaja significativa, ya que se dibujan árboles innecesariamente. Por otra parte, si no se usan instancias, solo se dibujarán 7 árboles.

El nivel de detalle del objeto (LOD) viene definido por su tamaño proporcional en pantalla, y la distancia de selección del objeto determinará si este se renderizará o no en función de la distancia con el jugador.

Con las futuras optimizaciones de esta función, queremos aumentar el rendimiento mediante la no renderización de los objetos de alto nivel de detalle que no se muestran en la pantalla. También queremos desarrollar un proceso inteligente para determinar qué objetos se procesan al usar instancias y en qué orden. Debido a que la GPU tiene en cuenta los LOD de los objetos, solo se instanciarán los modelos de LOD más bajos después de examinar todas las instancias. A continuación, el proceso de renderizado se ejecuta en orden descendente. A esto lo llamamos selección y procesamiento de instancias de la GPU.

En el siguiente gráfico se compara el tiempo de la GPU con esta función activada y desactivada con una resolución de 4K.

4.png.0824ace839e2428661b32120a4838835.png
* Tiempo de la GPU medido al usar una mira 8x
* El tiempo de la GPU mostrado en el gráfico anterior se ha calculado con una Xbox One X.Vemos un resultado más estable y una mejora de alrededor del 30 % en el tiempo de la GPU al activar la función de selección de instancias de la GPU. Sin la función de selección de instancias de la GPU activada, se aprecia que los tiempos de la GPU son más largos y fluctúan considerablemente.

Deseamos que os haya gustado la publicación de esta semana. ¡Esperamos veros en la siguiente edición dentro de dos semanas!

Gracias,

El equipo PUBG

Discutir artículo
Compartir artículo