The Photon Water System

The Photon Water System es un sistema para representar agua, al parecer, tiene todos los puntos para convertirse en uno de los sistemas más utilizados en los próximos videojuego. Así lo afirman Zhenyu Mao y Kui Wu de LIGHTSPEED STUDIO. Quienes proclaman sus motivaciones, el proceso de producción y los desafíos que enfrentaron. Haciendo hincapié en las virtudes del sistema. Incluido el soporte físico para los programadores de juegos y la iluminación volumétrica subacuática basada en la física.

Zhenyu Mao (Ingeniero de software principal, LIGHTSPEED STUDIOS)

Zhenyu Mao es ingeniero de software principal en LIGHTSPEED STUDIOS. Tiene más de dos décadas de experiencia en el desarrollo de juegos centrándose en la tecnología 3D, la arquitectura del motor y la optimización.

Zhenyu trabajó anteriormente en varios títulos AAA, incluidos Splinter Cell: Blacklist, Rainbow Six Seige, Far Cry 5, Far Cry 6 y más.

Como exlíder de tecnología de agua en Far Cry 5 y 6, Zhenyu construyó el sistema de representación de ríos, lagos y océanos desde cero, y definió la tubería de creación de datos automatizada para activos de agua.

Kui Wu (científico investigador sénior, LIGHTSPEED STUDIOS)

Kui Wu es científico investigador sénior en LIGHTSPEED STUDIOS. Es un experimentado investigador de gráficos por computadora centrado en la representación en tiempo real, el procesamiento de mallas, la fabricación computacional y la simulación física.

Kui fue asociado postdoctoral en el Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL) del MIT después de recibir su Ph.D. en Ciencias de la Computación de la Universidad de Utah en 2019. Con más de 20 artículos publicados en revistas y conferencias de primer nivel, incluidos Nature Electronics, ACM TOG, SIGGRAPH, IEEE TVCG, CGF, CHI, I3D, ICRA, RA-L y más , su investigación se extiende a varios campos de la infografía.

The Photon Water System río en movimiento
The Photon Water System río en movimiento

Introducción

Zhenyu Mao: Soy miembro del equipo técnico de LIGHTSPEED STUDIOS y trabajo en colaboración con profesionales experimentados de la industria del juego e investigadores sénior especializados en simulación y gráficos por computadora. Antes de unirme a LIGHTSPEED, tenía más de 20 años de experiencia como programador 3D y líder tecnológico en Ubisoft Shanghai y Ubisoft Toronto, donde hice importantes contribuciones al desarrollo de varios títulos AAA, como la serie Splinter Cell y Far Cry 5. y 6

Estoy feliz de ser parte del equipo actual de LIGHTSPEED, donde tengo la tarea de integrar e implementar las últimas tecnologías de vanguardia en nuestros juegos. Es realmente inspirador colaborar con un grupo de profesionales tan increíblemente talentoso.

Kui Wu: Soy investigador sénior en el Centro tecnológico de LIGHTSPEED STUDIOS. Antes de unirme al equipo, fui asociado postdoctoral en MIT CSAIL. En 2019, recibí mi Ph.D. en Gráficos por Computadora de la Universidad de Utah. Como investigador en el Tech Center, estoy trabajando en una variedad de funciones de simulación de física, que incluyen fluidos, cabello, ropa, etc. Estamos desarrollando técnicas de simulación en tiempo real y fuera de línea basadas en solicitudes de nuestros proyectos de juegos actuales y los juegos de última generación.

The Photon Water System
The Photon Water System

Solución para renderizado de agua y simulaciones en tiempo real

La reproducción de agua es una de las características más esenciales y requeridas dentro de LIGHTSPEED STUDIOS. La solución de agua actual en Unreal Engine no es adecuada para la producción, y los complementos de terceros sufren problemas de rendimiento y no se escalan a mundos grandes.

Decidimos abordar el problema de frente desarrollando una nueva solución de procesamiento de agua que satisfaría las necesidades de LIGHTSPEED STUDIOS. Aprovechamos las tecnologías de vanguardia para lograr una representación y simulación de agua realistas, al mismo tiempo que garantizamos un rendimiento y una escalabilidad óptimos. Esto nos permitió proporcionar una solución lista para producción para sus necesidades.

Solución para renderizado de agua y simulaciones en tiempo real
Solución para renderizado de agua y simulaciones en tiempo real

Sistema de fotones para simular agua

Zhenyu Mao: Comencé a trabajar en Photon Water System como el único desarrollador hace dos años. La idea inicial se centró en crear una tubería para generar agua, usando splines para generar ríos, ondas FBM para generar ondas detalladas y teselado adaptativo para generar grandes masas de agua. Sin embargo, con la incorporación del Dr. Kui Wu a nuestro equipo, que tiene una sólida experiencia en simulación física, pudimos llevar nuestra tecnología del agua al siguiente nivel.

Gracias a la experiencia del Dr. Wu, hemos desarrollado una solución patentada que genera un flujo de agua natural que interactúa armoniosamente con el medio ambiente. Nuestra simulación de agua puede generar un flujo preciso alrededor de los objetos, creando turbulencias realistas y generando espuma en los lugares apropiados.

Kui Wu: Me uní al proyecto medio año después de Zhenyu. Estaba buscando una forma de aplicar al juego una técnica de simulación basada en la física. La simulación de agua en tiempo real parecía una opción ideal, ya que es omnipresente, y va desde objetos de pequeña escala, como un vaso de agua, hasta cuerpos de gran escala, como ríos y océanos. Hay muchos documentos que tratan sobre fluidos en tiempo real, pero hay pocos juegos que presenten simulaciones de agua en tiempo real a gran escala. Pensamos que esta sería una característica importante para el juego.

Sistema de fotones para simular agua
Sistema de fotones para simular agua

El proceso de producción

El proceso de producción de Photon Water está diseñado para ser sencillo. Los artistas pueden usar herramientas spline para crear ríos y lagos o generar agua de manera procesal usando herramientas externas como Houdini. Alternativamente, pueden asignar el material de agua a cualquier malla. Una vez que se han agregado las fuentes de agua deseadas, la simulación de fluidos se puede iniciar con un solo clic. Los resultados de la simulación se guardan como mapas de flujo y altura del agua, que se almacenan como texturas virtuales basadas en mosaicos. En tiempo de ejecución, estas texturas virtuales se cargan bajo demanda.

Photon Water System brinda soporte de física para los programadores de juegos, lo que les permite obtener la altura de las olas de agua y el vector de flujo de la API para la física de la natación o el barco. Aprovechamos el material de agua de una sola capa de Unreal Engine para obtener iluminación y reflejos Lumen. Además, también hemos desarrollado un sistema de iluminación volumétrica subacuática con base física.

Uno de los principales obstáculos que encontramos al desarrollar Photon Water fue garantizar que los resultados de la simulación fueran uniformes en todos los proyectos. Si bien el sistema funcionó perfectamente en nuestro mapa de prueba, ocasionalmente fallaba en otras configuraciones debido a restricciones algorítmicas. Para abordar este desafío, tuvimos que identificar todos los escenarios extremos y agregar salvaguardas para garantizar que la simulación funcionara de manera confiable en todos los contextos.

The Photon Water System - el proceso de producción
The Photon Water System – el proceso de producción

Combinando métodos de Lattice Boltzmann y ecuaciones de aguas poco profundas

Kui Wu: Inspirándonos en demostraciones y complementos de agua existentes, primero experimentamos con LBMSWE (Métodos de Lattice Boltzmann para ecuaciones en aguas poco profundas). Es altamente paralelizable y admite flujo turbulento con un número de Reynold alto, lo que lo hace ideal para elaborar mapas de flujo.

Sin embargo, se descubrió que no era adecuado para la simulación de agua en tiempo real por dos razones. En primer lugar, debido a la naturaleza de LBM, cada celda de la cuadrícula necesita almacenar tres distribuciones, cada una con nueve canales, lo que genera un gran costo de memoria. Además, el marco LBMSWE sigue siendo una técnica de simulación de una sola fase que no puede capturar con precisión la superficie libre del agua. Como tal, solo usamos LBMSWE para calcular previamente los datos del agua.

Para el fluido de agua en tiempo de ejecución, seguimos la ecuación tradicional de aguas poco profundas (SWE) para resolver la dinámica del agua en una cuadrícula de campo de altura 2D, donde la altura indica la altura del agua. Pure SWE es extremadamente rentable de computar y tiene un bajo consumo de memoria.

Además, hemos desarrollado un método de simulación de espuma basado en cuadrícula dentro del mismo marco. Por lo tanto, la espuma de agua se puede generar y propagar en función del campo de velocidad resuelto por SWE, lo que aumenta el realismo del sistema de agua.

Combinando métodos de Lattice Boltzmann y ecuaciones de aguas poco profundas
Combinando métodos de Lattice Boltzmann y ecuaciones de aguas poco profundas

Zhenyu Mao – modificamos el sistema de procesar el agua

Modificamos el sistema de procesar el agua para adaptarlo a los datos generados en tiempo de ejecución. Los mapas de altura y los mapas de flujo se actualizan dinámicamente, se cortan en mosaicos y se escriben directamente en el grupo de textura virtual. El quadtree de agua también se actualiza en tiempo de ejecución desde la GPU, lo que permite que el código de representación funcione con datos precalculados y de tiempo de ejecución.

Además, desarrollamos un tercer tipo de simulación, la simulación de ondas superficiales, que solo resuelve la función de presión en las ecuaciones de aguas poco profundas. Esto nos permite crear ondas interactivas cuando los jugadores u objetos interactúan con el agua, aplicando un desplazamiento sobre la superficie del agua existente. Esta simulación se ejecuta rápidamente y utiliza solo dos objetivos de renderizado de profundidad, lo que permite trabajar incluso en plataformas móviles.

El Photon Water System proporciona varios parámetros para controlar la simulación, incluido el tamaño de la cuadrícula, el paso de tiempo, la viscosidad, la gravedad, la fricción, el factor de relajación, la velocidad de entrada/salida y el factor de teselado CDLOD para la renderización. En la mayoría de los casos, los parámetros predeterminados funcionan bien desde el primer momento.

Uno de los desafíos que encontramos durante el desarrollo fue garantizar que el resultado de la simulación fuera consistente en diferentes proyectos y entornos. Para abordar esto, identificamos, reparamos y protegemos contra varios casos extremos para garantizar que la simulación funcione de manera confiable en todos los entornos.

Zhenyu Mao - modificamos el sistema de procesar el agua
Zhenyu Mao – modificamos el sistema de procesar el agua

Escalabilidad y eficiencia del sistema Photon Water en diferentes plataformas

La solución está diseñada para ser escalable en diferentes plataformas, desde consolas/PC hasta dispositivos móviles. La simulación SWE en tiempo de ejecución se ejecuta de manera eficiente en un dominio de simulación de 512×512, utilizando cinco búferes persistentes del mismo tamaño y algunos búferes temporales. Solo se necesitan 0,5 ms para todos los pasos de simulación en la PS5.

La simulación de ondas de superficie tarda menos de 0,1 ms en la PS5 y se ha probado en dispositivos móviles, demostrando que puede ejecutarse de manera eficiente en 1 ms con una resolución de 512×512 en un dispositivo con un chipset Snapdragon 865.

Con respecto al renderizado, el renderizado de agua tarda aproximadamente 2 ms en total cuando el agua ocupa la mayor parte de la pantalla, con aproximadamente la mitad del tiempo dedicado al reflejo del lumen.

Planes futuros para el sistema de agua de fotones
Planes futuros para el sistema de agua de fotones

Planes futuros para el sistema de agua de fotones

Mirando hacia el futuro, planeamos experimentar con varias características interesantes. Estamos explorando la posibilidad de aumentar la resolución de la simulación, que actualmente está establecida en un metro cuadrado por píxel. Esto significa que los objetos más pequeños que este tamaño se ignoran. Al aumentar la resolución, podemos crear simulaciones más detalladas. Además, necesitamos más optimizaciones para garantizar que el presupuesto de rendimiento se mantenga bajo control.

También estamos interesados ​​en explorar el potencial de la transferencia de momento entre los datos de agua calculados previamente y los datos de tiempo de ejecución. Hemos probado la amortiguación y la combinación de los dos tipos de datos en el borde, pero creemos que existe la posibilidad de conectar los dos a la perfección para obtener simulaciones aún más realistas.

Zhenyu Mao, ingeniero principal de software en LIGHTSPEED STUDIOS
Kui Wu, científico investigador sénior en LIGHTSPEED STUDIOS
Entrevista realizada por Arti Burton en 80.lv.

Tienes más información y comentarios en el foro, sigue leyendo…