Seleccionar página

La tecnología VFX detrás de Saros: de NGP a Graphite – PlayStation.Blog.

La tecnología VFX detrás de Saros: de NGP a Graphite – PlayStation.Blog.

Hace cinco años escribimos sobre cómo los efectos visuales en devolver cobra vida, incluso un voxelizador real que Phrike ha disuelto en una niebla volumétrica. Si no lees lo que sigue es un buen compañero para esto.

Así continúa la historia.

cuando sarosNo solo estamos ampliando lo que hemos creado para Return. Retrocedimos, analizamos treinta años de desarrollo de motores acumulados y lo reconstruimos como un marco unificado: Graphite.

¿Qué teníamos y qué cambiamos?

Nuestro motor de partículas patentado, el prototipo NGP (Next-Gen Particle) de Resogun, comenzó en 2013 y creció con cada juego, hasta Returnal. Para SAROS, el NGP era maduro, pero también era el producto de doce años de decisiones incrementales, cada una de ellas tomada en el contexto de un juego aislado específico.

Luego cambió otra cosa: nosotros. Es hora de unirse, pero PlayStation Studios ofrece las experiencias que los jugadores esperan a nuestro nivel, y nuestras herramientas y los nombres que hemos creado nos han convertido en un estudio que ya no es igual.

Introduzca Grafito. Ofrece simulación de GPU, renderizado, herramientas e integración 700 en una única arquitectura, construida directamente en tiempo de ejecución pero en una única plataforma. NGP no desapareció, pasó a formar parte de Graphite, evolucionó y fue más capaz que antes.

Cada juego de Housemarque tiene una identidad visual que los jugadores reconocen de inmediato. El grafito es lo que es posible.

Pero lo que funciona se explica mejor por las personas increíbles que lo construyen.

El arquitecto de gráficos de Housemarque, Sharman Jagadeesan, y el programador de gráficos senior, Konsta Toivanen, lo guiarán a través de la niebla en Saros: cómo se desarrolló Returnal y los dos sistemas que construimos para hacer que la atmósfera de Carcass cobre vida.

Risto Jankkila (arquitecto de efectos visuales) explicará cómo ampliaremos Graphite con datos de Houdini, incluido un desglose completo de la secuencia de generación de jugadores.


Niebla volumétrica

En los juegos a menudo se representa niebla, algo que llena el espacio vacío y dibuja los huecos de la piel. En Saros queríamos que fuera una parte viva del mundo, de todo lo que en él sucedía.

En Returnal, nuestra niebla de volumen ya era reactiva, pero la frecuencia era demasiado baja y los pesados ​​filtros temporales impedían que se mostrara en detalle. Para Saros, construimos dos soluciones complementarias: una frecuencia de niebla oscura para la atmósfera circundante y una niebla de alta frecuencia para el efecto característico que se ve en la sala especial de historia en Carcosa.

Niebla de baja frecuencia

Tomamos una máquina de niebla froxel falsa, una pieza alineada con una cuadrícula de vóxeles, como punto de partida y reconstruimos partes importantes de ella para cumplir con nuestra visión.

El primer desafío fue la estabilidad temporal. El coeficiente de histéresis controla la cantidad de datos de fotogramas anteriores que retiene la niebla: la configuración predeterminada del 90% mantiene la imagen estable, pero crea una niebla lenta en cámaras y luces que se mueven rápidamente. Llevamos esto al 50%, usando la fluctuación del ruido azul y la profundidad del crack para mantener el alias bajo control.

También se necesita niebla Saros, que podría representar cualquier cosa, desde niebla ambiental de baja densidad hasta niebla terrestre de alta densidad. Estas cosas las hemos usado fielmente;

  • A doble Henyey-Greenstein Función de fase, modelando cómo la luz se dispersa hacia adelante y hacia atrás por la niebla dependiendo del ángulo de visión.
  • A coeficiente de absorción coloreadodeterminar cuánta luz se absorbe al pasar a través del medio, en una gama de colores mucho más amplia que las soluciones monocromáticas tradicionales.
  • A él descubriría su propio sistema que agrega las luces entrantes en la dirección del sombreado dominante y el rayo hacia él.
  • A El cuerpo se basa en el cielo integral brillante.espaciados con precisión sin sacrificio.

Una de estas cosas le dio la atmósfera de Carcass, la calidad del cuerpo.

Finalmente, una niebla de baja frecuencia totalmente interactiva. La advección de nuestra simulación de fluido que sigue al jugador alimenta directamente la densidad de histéresis, lo que hace que cada movimiento del jugador, proyectil, explosión y movimiento del enemigo en la niebla sea más fácil en tiempo real.

Niebla de alta frecuencia

Para niebla de alta frecuencia construimos un haz de marcha personalizado. Para mantener el rendimiento en la verificación de fidelidad, agrupamos los datos dispersos en grupos de vóxeles de 8x8x8 antes de la ruta, solo los grupos que contienen los datos, el número de umbral definido por el usuario continúan en sí mismos. Durante el recorrido se saltan las zonas vacías entre los grupos, el guía permite pasos más grandes siempre que sea posible.

Para ilustrar, estimamos el volumen de luz por volumen de dispersión, que contiene el brillo de todas las fuentes de luz, con el autosombreado previo de cada vóxel de luz. Establezco parámetros de blancura, absorbancia, densidad y sombreado, permitiendo a los artistas visuales equilibrar los efectos de cada volumen.

Luego, los dos sistemas de niebla se combinarán: tomaremos muestras de la niebla con más frecuencia dispersando los datos a través de una ruta de alta frecuencia y retroalimentaremos los resultados para que ambos permanezcan consistentes entre sí.

Casos de uso

Hemos utilizado niebla volumétrica de alta frecuencia en algunos escenarios. Un uso fue en el Prólogo en forma de calavera con humo adherido. Otro uso fue con lo que llamamos Mirages. En nuestros cuatro biomas hay salas de historias específicas donde Arjun se enfrenta a la criatura de humo.

1/2

Mostrando ahora la diapositiva 1 de 2

Niebla de calavera al comienzo del prólogo.

Apartamentos de cuatro pisos con Mirages

La reactividad es clave para todos los efectos visuales que hacemos y estos efectos no fueron la excepción. Dado que los datos no requieren un escaneo de alta resolución, se encuentran en un volumen único de baja resolución que mantiene el cráneo incluso en un campo de velocidad de baja frecuencia.

Las imágenes a continuación muestran ese volumen a la izquierda y conectado al cráneo derecho. Los ataques se evalúan como un campo marcado como Distancia, que respalda el tiempo, mientras que la velocidad se muestra en color y puedes ver el impacto de los agujeros y las turbulencias que crean.

1/2

Mostrando ahora la diapositiva 1 de 2

Este es el resultado del cráneo final sin los rudimentos y otros secundarios y en un ambiente diferente.

El efecto de imagen es similar al efecto de calavera. La diferencia es que se llaman escenas que giran en torno a. También utilizamos nuestro voxelizador de esqueleto de malla en tiempo real para incorporar mallas a escenas existentes. La siguiente imagen muestra los barridos entre el resultado voxelizado y el resultado final con datos advectivos del marco anterior.

Este es el último efecto con dos escenas sorprendentes en el entorno experimental. Para la reactividad se utiliza el mismo método descrito para el efecto del cráneo.


Graphite se amplía con datos de Houdini

Además, para mejorar la calidad de nuestros resultados de volumen, queríamos presentar nuevos métodos a nuestros artistas para promocionarlos.

Anteriormente, los efectos de volumen se creaban escribiendo expresiones por vóxel para la densidad de emisión, combinadas con simulaciones de emisión de fluidos por la advección (movimiento direccional) del campo de densidad. Debido a que esta cuadrícula basada en vóxeles es el enfoque estándar de la industria para la animación VFX, fue un primer paso natural.

De los días del regreso: voxelizando a Phrike en la malla de la densidad de emisiones

En el desarrollo de Return nos dimos cuenta de que necesitábamos un control más estricto sobre exactamente dónde se genera la densidad. Lógicamente, podemos proyectar la densidad de vóxeles en superficies vecinas o mallas voxelizadas, pero cualquier cosa más compleja conlleva una gran sobrecarga de tiempo de ejecución. Emitir densidad desde el brazo de un personaje, que voxelizaba todo el cuerpo, era muy difícil de realizar de manera efectiva en tiempo real.

Artículo de Returnal: malla voxelizada de emisión de densidad de cuerpo completo

Para resolver esto, recurrimos a partículas para impulsar la densidad de emisión. El sistema de partículas totalmente programable de Graphite nos brindó una base sólida para controlar estrictamente los volúmenes, lo que resultó en dos nuevas herramientas;

Un O*línea Houdini Señorata PAGipelina: permite a los artistas precalcular datos complejos y de alta fidelidad en Houdini que serían demasiado costosos de generar en tiempo real.

A Rprematuro PAGRasterizador de nube unint: un componente de alto rendimiento que toma puntos simulados y los rasteriza directamente en el volumen en tiempo real.

Uno que nos liberó de las voces estáticas de las personas y de las rígidas simulaciones de fluidos. Las partículas ahora pueden seguir con precisión la malla de un personaje animado, dando a los artistas control total sobre la animación y la animación.

En la práctica, el artista de saros importa el personaje animado a Houdini y utiliza sus herramientas para calcular las posiciones y atributos del efecto. Esos datos preparados se introducen en el motor del juego, donde la simulación se lleva a cabo en tiempo real. En el vídeo a continuación, los puntos generados en Houdini coinciden estrechamente con el personaje del jugador, y la lógica de tiempo de ejecución personalizada los aleja del enemigo ante el impacto de la bala, por lo que las posiciones iniciales provienen de Houdini, pero el personaje reacciona dinámicamente al jugador en tiempo real.

Datos del punto de entrega en Houdini

Datos por punto del motor Houdini

Dado que los artistas pueden exportar cualquier dato de Houdini a Graphite, es fácil anular las partículas estáticas adjuntas a los personajes. Abajo, las partículas fluyen a través de una superficie de malla animada: la superficie se desarrolló en el espacio de simulación de Houdini en 2D, luego se exportó y representó en una malla animada en tiempo real.

Una partícula fluye desde el cuerpo izquierdo de Arjun. En el medio extraemos la superficie ISO de las partículas. A la derecha tenemos una nube volumétrica de efluente de partículas emitidas.

El primer ejemplo en el juego de esta tecnología en acción es el orden en que aparecen los jugadores en Saros. Este efecto complejo se construye en muchas capas, comenzando sin conexión en Houdini, donde generamos splines directamente en la malla del esqueleto del jugador. Al exportar estas splines en Graphite, tratamos cada regla por spline como una partícula separada.

simulando las posiciones de las partículas de Houdini. Estos solo se utilizan para que las posiciones objetivo se vuelvan a simular dinámicamente en el motor y el crecimiento del movimiento en tiempo de ejecución.

En tiempo de ejecución, nuestro sistema de partículas programable controla cómo se comportan los elementos a lo largo del tiempo. Al principio, las splines fluyen libremente en el espacio, luego gradualmente regresan a su posición objetivo en el carácter de malla.

Queremos ver al jugador reformarse físicamente desde el grupo de movilidad «goo». Curriculum Cubes nos dio una cara sólida y pegajosa, y vamos a construirla con secuencias de control de partículas donde el jugador construye un personaje a partir de pines separados.

Se construye una curva cúbica a partir de splines de partículas.

Muchas de las splines que generan una sustancia viscosa en la superficie también pueden emitir densidad volumétrica. Para ello, genera varias partículas spline colocadas cerca de la ubicación del jugador y genera una niebla volumétrica a partir de ellas para simular el vapor o el humo que se eleva.

Niebla volátil salió disparada de splines de partículas

Como toque final, agregamos partículas de chispa que chocan con el personaje del jugador, marcadas por los campos de distancia calculados a partir de los cuadros de colisión del jugador. El sistema programable nuevamente nos dio flexibilidad aquí: el jugador atrae las partículas, pero cuando se acerca demasiado, la red repele a los jugadores, ayudando a dar la apariencia de emerger de un líquido cálido y líquido.

Partículas que chocan con las cajas de SDF de los jugadores.

Aquí todo está mezclado. Cada elemento se simula en tiempo de ejecución, a 60 fps en una PS5 básica, sin propiedades de simulación integradas. Esto nos permite generar muchas animaciones en el barco, cada una con una ligera aleatorización para que se vea un poco diferente cada vez que el jugador se despierta.

El jugador final aparece de la siguiente manera


Siempre es un viaje de desarrollo en evolución

Al leer lo que Risto, Sharman y Konsta desglosaron aquí, el objetivo para nosotros y nuestra tecnología siempre ha sido el mismo: cada simulación, cada efecto, cada decisión es hacerte sentir algo cuando lo haces.

Hacer juegos significa creer en algo que aún no puedes demostrar y sólo los propios jugadores lo confirman. Los jugadores de Saros nos dijeron con sus propias palabras que informarían de lo que habíamos construido. Y esto a través de todos nosotros.

Nuestros juegos informarán la tecnología que desarrollamos para Graphite, mostrando siempre lo que PlayStation como plataforma puede hacer. Estamos ansiosos por compartir el futuro con usted.


fuente

Source link