Avatar Frontiers of Pandora la gran entrevista de tecnología con el desarrollador

Avatar Frontiers of Pandora La Gran Entrevista Tecnológica con el Desarrollador

Avatar: Frontiers of Pandora casi salió de la nada para convertirse en uno de los juegos con mejor aspecto del año, con el icónico escenario de la serie de películas fusionándose perfectamente con una jugabilidad casi al estilo Crysis y un motor Snowdrop recientemente actualizado, que fue anunciado por primera vez en E3 hace diez años con The Division. Lo mejor de todo es que Avatar es un triunfo técnico no solo en PC, donde empuja los límites de la tecnología gráfica, sino también en las consolas, donde se mantiene sorprendentemente bien en PlayStation 5, Xbox Series X e incluso Series S.

El estudio detrás del título es Ubisoft Massive y recientemente Alex Battaglia de Digital Foundry tuvo la oportunidad de entrevistar a dos figuras clave en su desarrollo técnico: Nikolay Stefanov, el director técnico del juego, y Oleksandr Koshlo, el arquitecto de renderizado del motor Snowdrop.

La entrevista que sigue es una mirada fascinante detrás de escena de cómo Massive logró desarrollar el motor Snowdrop, crear el mundo de Pandora en forma de videojuego y entregar un juego de un tipo y calidad que no es tan común como solía serlo.

Como de costumbre, tanto las preguntas como las respuestas han sido editadas ligeramente para mayor claridad. ¡Disfrútenlo!

Esta es la revisión técnica completa en PC de Avatar: Frontiers of Pandora, que detalla sus muchos sistemas y cómo tienen éxito o fallan.

Digital Foundry: Lo primero que noté al jugar el juego es que están utilizando un nuevo sistema de iluminación global (GI). Desde que salieron las GPU compatibles con RT en 2018, hemos visto muchas técnicas diferentes para lograr iluminación de RT de hardware, así que me encantaría saber cómo se hace en esta versión de Snowdrop y qué papel tuviste en su desarrollo.

Oleksandr Koshlo: Soy el arquitecto de renderizado de Snowdrop, por lo que mi trabajo es buscar una dirección general para el desarrollo del renderizador gráfico. Pasé bastante tiempo en la parte de gestión de la jerarquía de volúmenes de enlace (bounding volume hierarchy, BVH) de nuestro trazado de rayos, mientras que otros miembros de nuestro equipo dedicaron tiempo a la iluminación real, la parte de “rayos”… Tenemos una representación de menor detalle de la geometría y materiales promedio en nuestro mundo de trazado de rayos. Es una combinación de trazado en espacio de pantalla, trazado en hardware en espacio de mundo y sondas que también hacen trazado de rayos para obtener la iluminación adecuada en cuestión.

Entonces, el proceso es hacer un trazado en espacio de pantalla. Si golpeamos algo, iluminamos ese golpe, si no lo hicimos, continuamos a partir de ahí con un rayo de hardware en el mundo de trazado de rayos. Dependiendo del efecto, ya sea GI difuso o reflexiones especulares, la longitud del rayo es diferente. Entonces, si no golpeó nada a lo largo del rayo, volvemos al resultado de la sonda. Así obtenemos el resultado de las sondas en caso de falla. Si golpeamos algo, lo iluminamos con nuestras luces locales, luz solar y también con la retroalimentación de las sondas. Las sondas son tanto un sustituto para los rayos que se perdieron como una fuente de luz secundaria. Así es como obtenemos retroalimentación y múltiples rebotes.

Nikolay Stefanov: Creo que una de las cosas que verán con nosotros es que, como todos somos suecos, somos bastante malos para poner nombres a las cosas. Así que no tenemos un nombre pegadizo para esto. Pero creo que es un sistema realmente genial y versátil que nos permite aprovechar todas las diferentes técnicas que hemos utilizado hasta ahora. Entonces, para The Division, teníamos la iluminación basada en sondas y esto continúa ahora utilizándolo como una especie de caché para los rebotes secundarios, GI de espacio de pantalla y trazado de rayos. Por supuesto, también estamos aprovechando el trazado de rayos en hardware. Pero también una de las cosas que creo que deberíamos mencionar es que también tenemos una alternativa de sombreador de cómputo para esto, para tarjetas gráficas que no admiten RT acelerado por hardware.

Oleksandr Koshlo: Es un poco difícil distinguir entre rayos en espacio de pantalla y rayos en espacio de mundo, porque tiendo a llamar a los rayos en espacio de mundo “rayos de hardware”, pero también es posible hacerlos en software y cuando hablamos de sondas, me gustaría enfatizar que son sondas ray-traced en tiempo real. No hay nada precalculado.

Digital Foundry: Eso es lo que también me preguntaba, porque imagino que también usan las sondas para las transparencias, y si retrocedieran al sistema de transferencia de radiación precalculado (PRT) que usaron antes, definitivamente no se verían tan nítidas como aquí.

Nikolay Stefanov: Exactamente. Las sondas de esta manera son más bien una especie de caché de brillo que algo independiente. Y hablando de “independiente”, eso es una de las cosas realmente geniales de este sistema: nos permite omitir todo el costoso proceso de horneado, ya que el mundo de Pandora es mucho más detallado y tiene muchas más regiones de las que solíamos tener en los dos juegos anteriores de The Division para un entorno muy diferente. Al principio del juego usamos el sistema PRT, que tardaba días en hornear todo el nivel; simplemente hacer iteraciones en el mundo nos llevaba una eternidad. Así que es realmente bueno tener un sistema que nos permita mover cosas y ver los cambios en tiempo real, especialmente cuando se trata de interiores.

Digital Foundry: Sí, el juego comienza en interiores y ya se puede notar con las linternas, con los personajes que caminan en su interior y vuelven a iluminar el mundo a medida que avanzas. Como se mencionó en los materiales de prelanzamiento, hay ray tracing para las sombras. ¿Puedes explicar cómo funciona eso?

Oleksandr Koshlo: Como mencioné antes, tenemos una representación de geometría de menor detalle para nuestra BVH, lo que significa que no podemos usar RT para sombras precisas… pero lo utilizamos de dos maneras. Una es para sombras de contacto, con rayos cortos hacia la luz para ver si golpeamos alguna superficie y obtener una sombra dura de contacto. Y lo contrario a eso son las sombras a larga distancia. Por lo tanto, todo lo que se encuentra más allá del rango de nuestra cascada de sombras es ray-traced, y así obtenemos sombras a larga distancia.

Nikolay Stefanov: Esto se usa para cosas como los grandes arcos de piedra o las islas flotantes que están en los paisajes y es súper importante para nosotros obtener ese detalle. También hacemos trazados contra el terreno, si recuerdo correctamente.

Oleksandr Koshlo: Hacemos trazados contra el terreno, y también hemos añadido impostores al mundo del ray tracing. Así que esos son cajas trazadas por hardware. Y una vez que golpeamos las cajas, estas son trazadas por rayos de software contra esa parte horneada del árbol.

Nikolay Stefanov: Verás que con muchas de nuestras tecnologías, se trata de combinar las mejores partes de las técnicas existentes para obtener el mejor resultado posible.

Digital Foundry: Solo he estado jugando en PC, pero realmente me gustaría saber cómo adaptaron esto para que la GI se ejecute bien en Xbox Series X, Series S y PlayStation 5, porque obviamente hay limitaciones en cuanto a cuánto se puede exprimir el hardware.

Aquí está el video de Tom sobre cómo funciona el juego en PS5, Series X y Series S. La respuesta: sorprendentemente bien, dada la calidad gráfica.

Oleksandr Koshlo: Diría que ha sido todo un desafío, pero hay varios ajustes para escalas diferentes en cuanto a calidad y hardware. La cantidad de rayos, la resolución del resultado, la calidad de la eliminación de ruido, la precisión de los resultados, la longitud de los rayos pueden variar. Tenemos ciertos compromisos. Podemos rastrear esto más rápido si es menos preciso, así que usemos esa opción. Las modificaciones que tenemos pueden ser grandes, como la resolución, o muy pequeñas, que podemos ajustar.

Nikolay Stefanov: También diría que, además del rendimiento en la GPU, una de las cosas en las que hemos tenido que adaptarnos ha sido la memoria, especialmente en Series S, donde hay menos memoria disponible que en las otras plataformas objetivo. Por ejemplo, cargamos el mundo del ray tracing a corta distancia, por lo que algunas sombras distantes no serán tan precisas como en las otras plataformas. Algunas de las geometrías que usamos para la BVH, para el ray tracing, tienen un LOD (nivel de detalle) más bajo que en las otras plataformas. Cosas así.

Digital Foundry: Todo eso suena lógico en cuanto a la escala. ¿Alguno de los otros trazados que mencionaste, como las sombras del terreno o las sombras de contacto, también están presentes en las consolas?

Oleksandr Koshlo: Sí. De hecho, todos los efectos son iguales en todas las plataformas, aunque en PC tenemos más opciones para desactivar o activar cosas.

Digital Foundry: Entonces, ¿dices que hay un mundo simplificado en la BVH? ¿Qué aspectos del follaje o los personajes con animación están incluidos?

Nikolay Stefanov: Creo que la mayor parte de la geometría está incluida por defecto dentro del mundo del trazado de rayos; solemos eliminar cosas muy, muy pequeñas. Por ejemplo, no toda la hierba estará en el mundo del trazado de rayos, ni todos los pequeños detalles micro estarán en el mundo del trazado de rayos. Los personajes están ahí, o al menos la mayoría deberían estarlo. En general, depende de los artistas técnicos decidir si quieren que ciertas cosas estén presentes o no.

Hay ciertas consideraciones que creo que te resultarán interesantes. Por ejemplo, si tienes algo superpequeño y brillante, puede que sea mejor eliminarlo del trazado de rayos para reducir el ruido. También es importante no tener toda la geometría en el mundo del trazado de rayos debido a limitaciones de memoria. En resumen, por defecto todo está en el mundo del RT, pero hay ciertas cosas que los artistas técnicos pueden decidir desactivar individualmente y eliminarlas del mundo del RT.

Digital Foundry: Entonces mencionaste cosas pequeñas y brillantes. En esa línea, lo que me llamó mucho la atención en el juego fue el soporte para la iluminación emissive. ¿Puedes explicarme cómo funciona eso? ¿Funciona “de forma automática”?

Oleksandr Koshlo: Funciona de forma automática. Esto funciona como parte de GI, donde si un rayo impacta en una superficie emissive, contribuirá a la iluminación. Pero obviamente, si es una superficie pequeña, y lanzamos rayos al azar en toda la escena, corremos el riesgo de que los rayos impacten en una superficie pequeña y generen mucho ruido. Por lo tanto, recomendamos a nuestros artistas que eliminen las superficies emissive pequeñas del mundo del trazado de rayos.

Nikolay Stefanov: Si puedo explicarlo brevemente en términos de trazado de rutas, lo que hacemos es una técnica específica llamada “rutas guiadas”. Básicamente, en el primer rayo que impactas, evalúas la iluminación de forma analítica. Por lo tanto, no hacemos un completo trazado de rutas de Monte Carlo. Sin embargo, esto solo se aplica a las luces analíticas. En cuanto a las superficies emissive, como Sasha mencionó, confiamos en la aleatoriedad de los rayos. Es por eso que esto puede generar más ruido que las luces analíticas. Pero los emissive sí funcionan y los soportamos completamente.

Digital Foundry: ¿Entonces estás hablando de guiar los rayos? ¿El proyecto consideró el uso de ReSTIR o ReGIR para mejorar un poco los resultados de esa aleatoriedad?

Oleksandr Koshlo: Sí, lo consideramos. Investigamos mucho las técnicas de RT, las técnicas de reducción de ruido. No terminamos usando específicamente ReSTIR. Aún estamos evaluando y seguiremos evaluando todos los avances en RT. Pero creo que tenemos personas realmente buenas trabajando en el lado de la reducción de ruido, incansablemente, ya que es un problema realmente difícil de resolver, y estamos muy satisfechos con los resultados finales.

Nikolay Stefanov: Creo que si quieres apuntar a Xbox Series S, la combinación de técnicas que usamos es aproximadamente a donde llegarás. Alguna especie de GI en el primer rebote más algún tipo de caché en probes, etc., etc. Creo que ReSTIR y otras técnicas, aunque son muy prometedoras, es difícil hacerlas funcionar y rendir bien en consolas, y también a 60fps.

Digital Foundry: ¿Cuándo comenzaron a darles a los artistas la capacidad de jugar con el trazado de rayos? ¿Fue en las etapas iniciales del proyecto? ¿O llegó a mitad de camino para reemplazar el antiguo sistema PRT?

Nikolay Stefanov: Un poco antes de la mitad del camino, pero como dije, comenzamos con PRT, o en realidad, incluso retrocedimos a la Dunia Engine en un momento dado, simplemente para reducir los tiempos de horneado. El cambio fue muy fácil para nosotros, simplemente porque la calidad del RT es mucho mejor que el enfoque pre-renderizado. Eso se hizo en algún momento durante la preproducción. El impacto en el aspecto visual fue bastante bajo.

Una de las cosas interesantes cuando estás construyendo para el trazado de rayos es que hay reglas diferentes para configurar los activos. Por ejemplo, una de las cosas que debes hacer es asegurarte de que los interiores sean herméticos, de lo contrario, la luz se filtrará desde el exterior. También necesitamos que los objetos sean de doble cara. Por lo tanto, hay cosas que normalmente no habrías hecho antes, donde solo tendrías objetos de un solo lado para las paredes del juego, y ahora tienes que hacerlos de doble cara para asegurarte de que todo funcione correctamente, incluido el sondeo y demás.

Oleksandr Koshlo: La geometría ahora necesita representar el mundo real de manera mucho más cercana.

Digital Foundry: En cuanto a las sondas, ¿cómo se colocan en el mundo? ¿Es solo una cuadrícula? ¿O es selectivo hasta cierto punto?

Oleksandr Koshlo: Es una cuadrícula que es un poco selectiva [todos se ríen]. Así que todavía tenemos algunas heurísticas, en qué nivel colocar la cuadrícula y dónde sesgarla en función de si estamos en interiores o exteriores, qué tipo de cosas tenemos allí, cuáles son las dimensiones del lugar en el que estamos. Pero es una cuadrícula en cascada, por lo que son cuatro cascadas, con la misma resolución para cada una pero cada una cubre consecuentemente una distancia mucho mayor.

Digital Foundry: En cuanto al sombreado de transparencias, obviamente tienes los reflejos en el agua, y la iluminación global se propaga en superficies transparentes y se extrae de ellas, pero ¿qué pasa con el vidrio? ¿Cómo se hace el sombreado allí?

Oleksandr Koshlo: Todavía tenemos mapas de cubo. Y todavía dependemos de ellos para estas superficies de vidrio. También hay una refracción local, que se puede ver en el agua o en superficies de vidrio completamente transparentes que se basa en el espacio de pantalla. Entonces no hay soporte para refracciones o reflejos trazados de rayos desde objetos semitransparentes, por el momento.

Además del video completo de Tom, Oliver y Rich discutieron las versiones de consola de Avatar en DF Direct Weekly, reproducido en el video DF Clips aquí.

Digital Foundry: En las consolas, ¿estás usando tu propio BVH preconstruido que cargas? ¿Cómo estás construyendo el BVH?

Oleksandr Koshlo: Tenemos una solución personalizada para el BVH en consolas. Como no dependemos de sus API, construimos previamente el BVH de nivel inferior para mallas sin conexión para obtener una mayor calidad. Luego construimos nuestra propia solución personalizada para el BVH de manera que nos permita construir el BVH de nivel superior en la CPU, mientras que con DXR y las API existentes, lo que haces es enviar todas tus instancias a la GPU y la GPU crea una estructura de aceleración. Dependemos mucho de la memoria caché y solo reconstruimos lo que ha cambiado. Esto nos permite construir eficientemente el nivel superior en la CPU y nos ahorra algo de tiempo de GPU en eso.

Digital Foundry: Eso es fascinante, ya que generalmente se hace de forma asincrónica en la GPU. Entonces, ¿qué se hace de forma asíncrona en la GPU? Probablemente sea específico de la plataforma al final, pero estoy muy curioso acerca de qué cosas se hacen de forma asíncrona allí.

Oleksandr Koshlo: En realidad, son muchas cosas. Usamos la computación asincrónica muchísimo. Nos encanta. Solo enviamos DX12 en PC, por lo que en realidad no tenemos diferencias de plataforma en términos de cosas que utilizan la asincronía. Las volumetrías se ejecutan completamente de forma asíncrona; el trazado de rayos de las sondas y la iluminación también se realizan de forma asíncrona. Mientras que la parte de trazado de g-buffer se ejecuta en la cola gráfica, la parte de trazado de sondas se ejecuta de forma asíncrona. La eliminación de culling de la GPU también se realiza en cómputo asíncrono, al igual que muchas otras cosas más pequeñas, por lo que está bastante bien optimizado.

Digital Foundry: En PC con la API de trazado de rayos DXR, tienes variantes en línea 1.0 y 1.1. ¿Cómo lo estás haciendo en PC?

Oleksandr Koshlo: Estamos utilizando la versión en línea 1.1. Esto fue realmente crucial para nosotros, ya que decidimos desde el principio que el trazado de rayos iba a funcionar para nosotros y que podíamos lanzarlo evitando todas las divergencias de sombreado. Entonces DXR 1.1 nos permite hacerlo de manera muy similar a cómo lo estamos haciendo en las consolas. Básicamente solo cambiamos las instrucciones. Con los materiales promedio, eso definitivamente es suficiente para nosotros.

Digital Foundry: ¿Eso es como un material por objeto, o…?

Oleksandr Koshlo: Es un material por malla. A menudo nuestros objetos consisten en varias mallas, por lo que obtienes cierta variación dentro de un objeto.

Digital Foundry: Entonces, ¿cuáles son los modos en las consolas y cómo se resuelven?

Nikolay Stefanov: Soportamos un modo de “preferencia de rendimiento” a 60 fps en PS5 y Xbox Series X. Los jugadores también pueden seleccionar un modo de “preferencia de calidad” que apunta a 30 fps. Aquí subimos un poco las cosas y generamos internamente a una resolución más alta. En el caso de Series S, apuntamos a 30fps y no hay un modo de 60fps para esa consola en particular.

[Nuestro análisis completo de la tecnología de la consola Avatar ha sido realizado por Tom, que detalla cómo se comparan los modos en términos de gráficos y rendimiento, incluyendo cómo se desempeña la Series S.]

Digital Foundry: Entonces, en el pasado, Snowdrop fue uno de los pocos motores que popularizó la mejora temporal de resolución, ¿cómo lo están haciendo esta vez?

Nikolay Stefanov: Estamos utilizando FSR en las consolas para mejorar la resolución y el antialiasing temporal, al igual que en PC. Por defecto, creo que probablemente te habrás dado cuenta de que es FSR. En PC, también admitimos DLSS. También estamos trabajando con Intel para admitir la última versión de XeSS, que vendrá como una actualización, con suerte, pronto.

Digital Foundry: ¿El juego utiliza escalado de resolución dinámica en las consolas? En realidad no recuerdo si The Division lo usaba.

Oleksandr Koshlo: The Division utilizaba escalado de resolución dinámica y también lo utilizamos en Avatar.

Nikolay Stefanov: Esa es una de las diferencias entre el modo de calidad y el modo de rendimiento. Entonces, en el modo de rendimiento de 60fps, permitimos que la resolución interna baje un poco más. Esa es una de las principales diferencias que verás.

Digital Foundry: Entonces, en PC, hay una opción junto al escalador de resolución que habla sobre ajustar la resolución. ¿Puedes explicar qué hace eso?

Nikolay Stefanov: Sí, absolutamente. Hay un artículo detallado sobre las características de PC que habla de esto y de muchas otras cosas… el medidor de VRAM, el benchmark de PC, etc. Básicamente, controla la resolución interna a la que se renderiza y la calidad del escalado.

[El escalado se basa en la resolución actual de la pantalla. Las resoluciones inferiores a 4K se ajustan hacia resoluciones de renderización más altas, en 4K es igual que la escala fija, y por encima de 4K se ajusta hacia resoluciones de renderización más bajas].

Avatar: Frontiers of Pandora funcionando a 4K DLSS en el modo de rendimiento en PC con la configuración ultra – en el momento en que se tomaron estas capturas, Ubisoft Massive aún no había revelado la configuración oculta de “unobtanium”.

Digital Foundry: Una cosa que noté es que la densidad del mundo es increíblemente alta en términos de vegetación. ¿Utilizaron alguna de las características más nuevas de DX12 o del RDNA, como el sombreado primitivo o el sombreado de malla?

Oleksandr Koshlo: Sí, utilizamos sombreado de malla en las consolas. Entonces, hay dos cosas que contribuyen a la alta densidad de nuestra geometría en el mundo. Una es la canalización de geometría de la GPU, que es nueva en Avatar, y admite nuestra canalización de colocación procedural. Esto aporta muchas instancias de geometría y usamos la GPU para eliminar las que no están en pantalla y solo renderizar lo que se muestra. Y luego también dividimos la geometría en lo que llamamos “meshlets” y utilizamos características nativas de hardware como el sombreado primitivo y el sombreado de malla para renderizarlos en pantalla. Utilizamos un paso adicional de eliminación para descartar las mallas que no están en pantalla. Estas cosas realmente mejoran el rendimiento para el renderizado de geometría.

Digital Foundry: ¿Existe un camino de sombreado de malla en la versión de PC?

Oleksandr Koshlo: No, decidimos no incluirlo en un momento dado, ya que la tecnología es nueva y existe un desafío particular en soportar la variedad de GPUs y hardware disponibles en PC. Entonces, por ahora, optamos por el camino más sencillo de admitirlo por completo primero en las consolas.

Nikolay Stefanov: Pero en todas las PCs, seguimos utilizando la canalización impulsada por GPU para el culling y más. Así que solo el camino de los “meshlets” no está presente.

Digital Foundry: ¿Podrían explicar esta canalización impulsada por GPU y cómo funciona? La primera vez que recuerdo haber leído sobre esto fue en la presentación de Seb Aaltonen para AC Unity, ¿en qué consiste exactamente?

Nikolay Stefanov: Entonces, como dijiste, la densidad del detalle del mundo es algo en lo que queríamos destacar, especialmente porque Pandora es la estrella de las películas, ¿verdad? Comenzamos desarrollando sistemas para definir la colocación de cómo debería verse un bioma en particular. Hay sistemas basados en reglas que nos dicen qué plantas específicas viven cerca del agua, qué tipo de otras flora las rodea cuando tienes este tipo de árbol, etc. etc. Estos sistemas operan en tiempo casi real, por lo que puedes cambiar las reglas y luego repoblar el mundo en un par de segundos.

Hubo dos desafíos con esto. Uno es que tenemos casi diez veces más detalle que nuestros títulos anteriores. Y el otro desafío es que necesitamos mostrar este detalle a una gran distancia con los sistemas de vista que hemos desarrollado. Así que la única manera para nosotros de manejar este tipo de detalle fue pasar a un pipeline basado en GPU, y no hay nada muy complejo acerca de los pipelines de GPU.

Básicamente, lo que hacen es que, en lugar de operar en función de los elementos individuales, operan en grandes fragmentos de geometría, sectores de 128×128 metros. Lo que hace el pipeline de GPU es tomar todo el sector, pasar primero por un camino específico que rechaza la instancia del sector, donde básicamente dice “¿este sector es visible en absoluto?”, luego realiza el proceso de rechazo individual de las instancias, incluyendo los meshlets para las partes específicas de la malla.

Entonces se construye una lista de cosas para el GPU para realizar sombreado de vértices, lo cual es bastante complejo, debo decir. Te sorprendería las cosas que nuestros artistas técnicos están haciendo en los sombreadores de vértices. Básicamente, los renderizamos en los G-buffers y les aplicamos luz, etcétera. Pero es importante para nosotros mantener la flexibilidad que los sombreadores de vértices nos brindan porque se utilizan para todas las plantas interactivas que ves en el juego: cosas que se giran, cosas que se doblan, la forma en que se mueven esas plantas amarillas…

Digital Foundry: Oh, sí, las plantas extrañas y cónicas que se encogen cuando las tocas.

Nikolay Stefanov: Entonces, todo esto en realidad se hace en los sombreadores de vértices. Y si los ejecutáramos para todo, el rendimiento se desplomaría. Así que es importante tener soporte de meshlets para esto. Así es más o menos cómo funciona nuestro proceso de rechazo.

Oleksandr Koshlo: En cuanto al proceso de rechazo de instancias de GPU en particular, no hacemos ninguna distinción en el lado de los activos. Por lo tanto, cuando se crea un activo, no tiene conocimiento de si va a ser colocado de forma procedural y sometido a un rechazo de GPU, o si va a ser colocado a mano y pasar por otro sistema, así que todo es transparente en ese aspecto.

Nikolay Stefanov: Otra cosa que hemos hecho para este proyecto es el sistema de vista. Básicamente, tenemos un par de etapas. Las cosas que están cerca de ti a una distancia razonable son geometría de alto detalle, y eventualmente se cargan de la memoria. Después de eso, cambiamos a nuestra representación impresa en la segunda etapa de la distancia, que nuevamente es completamente impulsada por GPU para sectores enteros. Las impresiones son impresiones estándar con mapas normales, aunque también admitimos sombreado en ellas. Y luego, a medida que te alejas aún más, tienes la tercera etapa; incluso las impresiones se descargan, y nos quedamos con la representación de cosas muy grandes: los arcos, las islas flotantes, y así sucesivamente. Nuevamente, todo esto es impulsado por GPU: rechazo, renderizado, etcétera.

Digital Foundry: Realmente me sorprende que incluso funcione sin sombreado de malla en PC según tu descripción, así que debe estar bastante optimizado incluso sin eso.

Oleksandr Koshlo: Para ser justos, lograr que el sombreado de malla fuera más rápido que el sombreado no basado en malla fue en realidad un gran desafío para mí. He pasado bastante tiempo en ello y aún así, la rasterización convencional es realmente rápida y funciona muy bien.

Digital Foundry: Hablaste de la ubicación de activos basada en reglas, pero ¿cómo se genera el terreno en realidad?

Nikolay Stefanov: Así que para este proyecto, al igual que para cualquier mundo abierto de alta calidad, creo que lo importante aquí es asegurarse de tener una buena proporción de contenido colocado a mano, donde en realidad tienes un diseñador que se sienta y decide cómo va a lucir el nivel y cómo va a ser el terreno, y luego dejas los detalles a la computadora, que puede colocar cosas y hacer erosión mucho más rápido que un humano y que puede hacer erosión.

Para nosotros, la forma en que se logra el mundo es a través de lo que llamamos plantillas de nivel. Toma, por ejemplo, el árbol principal en el juego. Esta es una plantilla de nivel específica que tiene muchos detalles colocados a mano en su interior, pero también tiene artistas que hacen el terreno alrededor de él a mano. Lo que nos permite hacer nuestro editor de niveles en Snowdrop es tomar esa plantilla de nivel y moverla por el mundo, de manera que el terreno hecho a mano se mezcle con el terreno más grande que es la base del nivel.

En general, así es como lo hacemos; tenemos una placa base creada por un desGameTopicer, a través del uso de sistemas procedurales, pero también con mucha artesanía para guiar al jugador. Tenemos sistemas para la erosión, para cómo se propagan las plantas rebotadoras… Y encima de eso, colocamos plantillas de nivel, algunas de las cuales se colocan a mano en una ubicación exacta, el terreno se mezcla con ellas y todo se alGameTopiza. También tenemos plantillas de nivel específicas que también se colocan de forma procedural, o se dispersan por todo el nivel para simplificar la vida de los desGameTopicers que probablemente no quieran colocar una formación de rocas a mano miles de veces.

Un vistazo a cómo se ve Avatar en las consolas de generación actual. Es interesante notar que incluso la Series S produce una experiencia visual atractiva, aunque limitada a 30 fps con recortes en resolución y características.

Digital Foundry: Me sorprendió un poco lo grande que es el mundo, porque llegué al árbol hogar, miré el mapa y pensé: “Oh, ni siquiera he recorrido un cuarto de este mundo”.

Nikolay Stefanov: Tenemos tres regiones distintas. Creo que aún estás en el primer bioma. Cada una de ellas es un poco más grande que el tamaño del mapa en The Division 2.

Digital Foundry: Una cosa que noté específicamente en PC es algo de lo que he estado hablando durante años. Me entristece tener que hablar de esto, pero quiero saber sobre la compilación de PSO. Me intriga cómo maneja el juego esto en la plataforma de PC, porque el juego no se traba como vemos en muchos otros lanzamientos de PC.

Nikolay Stefanov: Básicamente hemos preconstruido los PSO y los hemos enviado… Creo que alrededor de 3GB de PSO en PC, algo así. Es un poco loco.

Oleksandr Koshlo: Es simplemente mucha variación. También manejamos la carga de objetos de manera diferente. No sé si debería mostrar todas las cartas aquí [todos se ríen].

Oleksandr Koshlo: El juego no debería experimentar tartamudeo por parte del desGameTopicer. Si se necesita realizar una compilación de PSO, eso significa que el objeto se cargará posteriormente. Tratamos el paso de compilación como parte de la carga del objeto. Técnicamente, puede haber errores en el código que causen tartamudeos de PSO, pero estamos atentos a eso. Se informa internamente y lo solucionamos. Pero eso no es lo habitual. Nos tomamos eso muy, muy en serio.

Digital Foundry: Una cosa que noté al mirar en el archivo de configuración es que hay VRS (sombreado de velocidad variable) listado, ¿el juego realmente lo soporta?

Oleksandr Koshlo: Sí, lo hace. Necesito verificar la configuración específicamente, pero el soporte está ahí.

Digital Foundry: ¿Se utiliza en las consolas Xbox Series?

Nikolay Stefanov: No creo que se esté utilizando.

Oleksandr Koshlo: No creo que lo estemos usando en este momento en las consolas Series.

Digital Foundry: ¿Hay alguna parte del proyecto de la que estés especialmente orgulloso?

Nikolay Stefanov: Una de las cosas a las que quiero llamar tu atención es la implementación del sonido en el juego. Esto es algo de lo que todos estamos muy orgullosos en conjunto. Utilizamos trazado de rayos para la propagación del sonido. Cuando un emisor de sonido está oculto u ocurre una reflexión del sonido, todo esto se simula a través de nuestro mundo de trazado de rayos. Espero que tengamos la oportunidad de hablar de esto en GDC el próximo año, es un sistema realmente genial.

Otra de las cosas locas es que cada planta individual que ves en el suelo realmente tiene un poco de “volumen de activación”. Entonces, cuando el personaje del jugador o un animal terrestre los atraviesa, emiten un sonido localizado. Así que básicamente, cuando escuchas algo que se mueve, eso significa que hay un animal que está pasando por las plantas, no es solo una ambiencia en bucle que está “falsa”. Así que si tienes un buen par de auriculares, puedes disfrutarlo de verdad.

Otra cosa de la que estoy orgulloso es el benchmark de PC. Tiene gráficos muy, muy detallados que creo que te resultarán interesantes. Tenemos etiquetas de perfilado en nuestro juego que nos dicen cuánto tiempo tarda el paso del trazado de rayos en la GPU, cuánto tiempo tomó el paso de la memoria G, cuánto tiempo tomó el paso de postprocesamiento, etc. Y hay una página de detalles donde podrás ver todas estas cosas individualmente como parte del benchmark. También ofrecemos automatización del benchmark, así que puedes iniciarlo a través de la línea de comandos y luego te dará todos estos detalles en un archivo CSV. El benchmark también incluirá el uso de la CPU. Por lo tanto, te dirá cuánto tiempo nos llevó procesar agentes, detección de colisiones, etc, etc. Así que si te gustan las estadísticas y los gráficos, creo que este será para ti.

Oleksandr Koshlo: En general, estoy orgulloso de cómo todo se fusionó, y de que logramos encajarlo todo en las consolas a 60fps. Nuestra filosofía desde hace mucho tiempo ha sido no depender de algo “novedoso”. Aquí hacemos trazado de rayos, pero solo para las cosas que nos importan, cosas que mejoran mucho la calidad visual con el rendimiento adecuado para nosotros. Nos preocupamos por cosas que valen la pena. Y tratamos de trabajar no solo en cosas difíciles, sino también en cosas básicas, y luego hacerlo bien para que todo encaje correctamente. Creo que lo logramos nuevamente. Y definitivamente espero que te gusten los resultados.

Nikolay Stefanov: Tengo una pregunta para ti, Alex. ¿Has visto el desenfoque de movimiento?

Digital Foundry: [Risas] Sí, he visto el desenfoque de movimiento. Es mucho mejor que en el tráiler. [Todos ríen]

Digital Foundry: Solo quiero darte un poco de retroalimentación. ¿Te importaría implementar un control deslizante de desenfoque de movimiento, ya que el juego actualmente solo tiene un interruptor binario para el desenfoque de movimiento en este momento? Sería bueno poder aumentar o disminuir la exageración del efecto según las preferencias personales. Mucho del desenfoque de movimiento desaparece a velocidades de cuadro más altas y a algunas personas les puede gustar una mayor suavidad, especialmente en un juego como este que tiene ambiciones cinematográficas.

Nikolay Stefanov: Creo que es una buena idea. Podemos discutirlo con los desarrolladores y ver si es algo que podemos implementar más adelante. Creo que a algunas personas realmente les gusta el desenfoque de movimiento. Lo curioso del desenfoque de movimiento es que nuestro director creativo, Magnus Jansén, es un gran fanático de Digital Foundry, así que en cuanto te vio hablar sobre el desenfoque de movimiento, vino corriendo hacia nosotros.

La discusión sobre el desenfoque de movimiento en esta sección de la entrevista hace referencia a la reacción inicial de Alex al tráiler de Avatar: Frontiers of Pandora, mostrado arriba.

Digital Foundry: Mencionaste como parte del benchmark que estás registrando datos sobre el uso de la CPU que estás mostrando a los usuarios. ¿Puedes explicar cómo estás aprovechando los CPUs de múltiples núcleos y la multitarea de manera efectiva? Porque sigue siendo un gran problema en los juegos de PC.

Nikolay Stefanov: Absolutamente, definitivamente podemos entrar en más detalles. Con Snowdrop y Avatar, trabajamos con algo llamado un gráfico de tareas. En lugar de tener un único hilo de juego más tradicional, dividimos el trabajo en tareas individuales que tienen dependencias, y eso nos permite utilizar los CPUs de múltiples núcleos de manera mucho más eficiente. De hecho, el juego no funciona tan bien si no tienes muchos núcleos.

La forma en que lo hacemos es que utilizamos todos los núcleos excepto uno, que dejamos para el sistema operativo. Para el resto, ejecutamos varias tareas en ellos, según la carga. Una de las cosas buenas de Snowdrop es que nos permite la flexibilidad de ejecutar este tipo de cosas y una de las cosas en las que dedicamos mucho tiempo es romper las dependencias para asegurarnos de que, por ejemplo, los NPC puedan actualizarse en paralelo, que la interfaz de usuario pueda actualizarse en paralelo, que la física pueda actualizarse en paralelo también. Así que espero que veas una buena optimización de la CPU.

Digital Foundry: Definitivamente lo vi de inmediato. Solo muy brevemente, admites la generación de 3 frames de FSR. ¿Y estás pensando en admitir XeSS en el futuro?

Nikolay Stefanov: No tenemos planes concretos de admitir la generación de 3 frames de DLSS… pero estamos trabajando muy de cerca con Nvidia, así que con suerte escucharás más al respecto en el futuro.

Digital Foundry: Hay algunas plantas que se pueden romper en el mundo. ¿Cómo se hacen?

Nikolay Stefanov: Es una continuación de los sistemas que usamos para The Division. Mientras que la mayoría de los objetos tienen soporte para destrucción de alguna manera, la forma más básica de destrucción es cambiar a una versión de los shaders destruida. Puedes verlo cuando te acercas a áreas contaminadas, por ejemplo, puedes ver las plantas destruidas, y cuando derrotas las bases, la naturaleza se limpia y vuelve a su aspecto original de planta.

Ciertas plantas más grandes admiten lo que llamamos “corte de malla” y creo que la mayoría de ellas están “pre-cortadas”. Aquí en las aplicaciones de creación de contenido digital, como Maya o 3DS Max, defines cómo se supone que deben cortarse. Luego, cuando detectamos un golpe, tomamos esa instancia de planta particular de la tubería impulsada por la GPU y la transformamos en un objeto impulsado por la CPU más tradicional que luego se divide y destruye. Luego hacemos una simulación física de los fragmentos que caen de ella. Si haces esto demasiado, es probable que comiences a ver una caída en la velocidad de fotogramas.

Digital Foundry: En cuanto al sistema de sonido y su trazado de rayos, ¿se realiza el trazado de rayos en la CPU? ¿O se realiza en el hardware de la GPU?

Nikolay Stefanov: Es en la GPU, donde está disponible en el hardware. Usamos los mismos mundos de trazado de rayos y las mismas consultas de trazado de rayos exactamente que el resto del sistema.

Digital Foundry: El sonido parece propagarse de una manera altamente realista, está muy bien hecho.

Nikolay Stefanov: Sí, absolutamente. Creo que una de las otras cosas que notarás es que también es interactivo. Entonces, si intentas disparar tu arma, verás que ciertos sonidos de aves desaparecen porque te tienen miedo. Eso no sucederá si disparas tu arco. Todo se basa en la interactividad.

Eso es una de las cosas en las que siempre estoy en dos mentes como director técnico. Como director técnico, quieres establecer un límite en cuán ambicioso es un sistema en particular. Pero esta vez con el equipo de audio, ellos han tenido que reinventarse en su propia ambición. Están haciendo tanto. Hay incluso momentos en los que colocan semillas procedurales donde vas a escuchar cómo el viento silba a través de cierta geometría, de modo que descubren dónde es probable que haya sonidos de silbido de viento según diferentes elementos y cuando llega una tormenta, tendrá aspectos únicos, escucharás todo esto con sonidos propagados posicionados en 3D.

Digital Foundry: El terreno en sí mismo en el suelo está bastante teselado. ¿Cómo se hace eso?

Oleksandr Koshlo: Está pre-teselado en la CPU. Enviamos rejillas más detalladas en los lugares donde las necesitamos.

Nikolay Stefanov: En términos de terreno, en esta ocasión no invertimos tanto en la tecnología, ¡porque muchas veces está completamente cubierto de cosas!

Digital Foundry: ¡Sí, generalmente está cubierto! Una de las cosas que siempre me encantó de The Division fue el renderizado volumétrico de la propia iluminación y la iluminación de partículas. ¿Han cambiado las cosas para Avatar aquí?

Oleksandr Koshlo: Sí. En cuanto a lo volumétrico, solo teníamos el volumen alrededor y frente al jugador en los juegos de The Division. Ahora tenemos un volumen y trazado de rayos más allá de él, por lo que podemos admitir distancias mucho más grandes; se derrumbaría completamente sin eso. Ahora también tenemos nubes volumétricas. Marchamos uniformemente a través de la niebla y las nubes. Las nubes también pueden ser parte del volumen de primer plano, porque ahora podemos volar dentro de ellas con la montura voladora. Es un sistema unificado.

Nikolay Stefanov: Como dice Sasha, ahora puedes volar sobre las nubes. Esto lleva a situaciones interesantes donde, en el suelo, por ejemplo, puedes tener una tormenta eléctrica, pero ahora puedes volar la banshee a través de las nubes trazadas volumétricamente y luego realmente subir por encima de ellas. Se ve bastante genial.

En cuanto a las partículas, reciben iluminación a través del trazado de rayos y ahora tenemos soporte completo para partículas en la GPU. En los juegos de The Division, usamos partículas en la GPU para la nieve y la lluvia, si recuerdo correctamente, pero ahora todo está completamente integrado con los grafos nodales de Snowdrop. Entonces, la mayoría de los efectos de partículas pasan por la GPU con detección de colisiones y toda la iluminación. Eso es una de las cosas importantes que hemos hecho. Así que todas estas pequeñas cosas giratorias que ves, son solo partículas en la GPU.

Digital Foundry: Mucha información para asimilar aquí. Muchas gracias, Sasha. Muchas gracias, Nikolay. Gracias por su tiempo. ¡Espero poder hablar con ambos en algún momento en el futuro nuevamente. Espero que haya una presentación en la GDC sobre todo lo que han hecho!