Articulo de referencia

animación basada en la física

La animación basada en la física es un área de interés dentro de los gráficos por computadora que se ocupa de la simulación de comportamientos físicamente plausibles a velocidad...

La animación basada en la física es un área de interés dentro de los gráficos por computadora que se ocupa de la simulación de comportamientos físicamente plausibles a velocidades interactivas. Los avances en la animación basada en la física suelen estar motivados por la necesidad de incluir comportamientos complejos inspirados en la física en videojuegos, simulaciones interactivas y películas. Si bien existen métodos de simulación fuera de línea para resolver casi todos los problemas estudiados en la animación basada en la física, estos métodos están diseñados para aplicaciones que requieren precisión física y cálculos lentos y detallados. A diferencia de los métodos comunes en la simulación fuera de línea, las técnicas en la animación basada en la física priorizan la plausibilidad física, la estabilidad numérica y el atractivo visual sobre la precisión física. La animación basada en la física a menudo se limita a aproximaciones imprecisas de los comportamientos físicos debido a las estrictas restricciones de tiempo impuestas por las aplicaciones interactivas. La velocidad de fotogramas objetivo para aplicaciones interactivas como juegos y simulaciones suele ser de 25 a 60 hercios , y solo una pequeña fracción del tiempo asignado a un fotograma individual queda para la simulación física. Generalmente se prefieren los modelos simplificados de comportamientos físicos si son más eficientes, más fáciles de acelerar (mediante preprocesamiento, estructuras de datos inteligentes o SIMD / GPGPU ) o si satisfacen propiedades matemáticas deseables (como la estabilidad incondicional o la conservación del volumen cuando un cuerpo blando se deforma). Los detalles finos no son importantes cuando el objetivo principal de una visualización es el atractivo estético o el mantenimiento de la inmersión del jugador, ya que estos detalles suelen ser difíciles de percibir para los humanos o, de otro modo, imposibles de distinguir a escala humana. [ 1 ]

Historia

La animación basada en la física es ahora común en películas y videojuegos, y muchas técnicas fueron pioneras durante el desarrollo de las primeras escenas de efectos especiales y motores de juego . Star Trek II: La ira de Khan utilizó sistemas de partículas en la escena de la explosión de Génesis para crear el efecto visual de una onda expansiva llameante que envolvía un planeta. [ 2 ] A pesar de haber sido lanzado antes de que los motores de física fueran una característica común en los juegos, System Shock incorporó física de cuerpos rígidos en su motor y fue ampliamente considerado innovador por esta característica y la novedosa sensación de interacción que brindaba a los jugadores. Valve desarrolló más tarde Half-Life y utilizó física de cuerpos rígidos para crear puzles ambientales para el jugador, como obstáculos que no se podían alcanzar sin apilar cajas. Half-Life 2 presentó un motor de física más avanzado que incorporó sistemas restringidos como poleas o palancas con más puzles ambientales para mostrar estas características. Los motores de física son ahora mucho más comunes en los juegos, y su frecuente aparición ha motivado la investigación en animación basada en la física por parte de compañías como Nvidia .

Animación basada en la física en juegos y simulaciones

La animación basada en la física es común en juegos y simulaciones donde los usuarios esperan interactuar con el entorno. Motores de física como Havok , PhysX y Bullet existen como productos desarrollados de forma independiente para su licencia e inclusión en juegos. En juegos como Angry Birds o World of Goo , la animación basada en la física es la mecánica de juego principal, y se espera que los jugadores interactúen con sistemas simulados físicamente o los creen para lograr objetivos. Aspectos de los juegos de puzles de física están presentes en muchos juegos de otros géneros que incorporan simulación basada en la física. Permitir la interacción física con el entorno mediante la animación basada en la física fomenta soluciones no lineales a los puzles por parte de los jugadores y, en ocasiones, puede dar lugar a soluciones a problemas presentados en los juegos que no fueron incluidos deliberadamente por los diseñadores de niveles. Las simulaciones utilizadas con fines distintos al entretenimiento, como las simulaciones militares, también utilizan la animación basada en la física para representar situaciones realistas y mantener la inmersión de los usuarios. Muchas técnicas de animación basadas en la física están diseñadas pensando en implementaciones GPGPU o pueden extenderse para aprovechar el hardware gráfico, lo que permite crear simulaciones físicas lo suficientemente rápidas para videojuegos. Sin embargo, el tiempo de la GPU suele reservarse para el renderizado, y las frecuentes transferencias de datos entre el host y el dispositivo pueden convertirse fácilmente en un cuello de botella para el rendimiento.

Animación basada en la física en las películas

Las simulaciones pueden realizarse sin conexión (es decir, aparte de cuando se visualizan) en el desarrollo de efectos especiales para películas. Por lo tanto, la velocidad no es estrictamente necesaria en la producción de efectos especiales, pero sigue siendo deseable para obtener una retroalimentación razonablemente rápida y porque el hardware requerido para métodos más lentos es más caro. Sin embargo, la animación basada en la física sigue siendo la preferida, ya que los métodos más lentos y precisos pueden ser costosos y limitantes. La precisión física de los pequeños detalles en un efecto especial no es relevante para su atractivo visual, restringe el control que los artistas y directores pueden ejercer sobre el comportamiento y aumenta el costo monetario y el tiempo necesarios para lograr los resultados. Es necesario poder dictar el comportamiento general de los efectos inspirados en la física en las películas para lograr la dirección artística deseada, pero programar comportamientos físicos a nivel de pequeños detalles puede ser inviable cuando intervienen fluidos, humo o muchos objetos individuales. La animación basada en la física generalmente ofrece un mayor control al artista sobre la apariencia de los resultados simulados y también es más conveniente cuando los efectos deseados pueden alterar o desafiar las leyes de la física.

Subtemas

Simulación de cuerpo rígido

La física simplificada de cuerpos rígidos es relativamente económica y fácil de implementar, razón por la cual apareció en juegos interactivos y simulaciones antes que la mayoría de las demás técnicas. Se supone que los cuerpos rígidos no sufren deformación durante la simulación, de modo que el movimiento de un cuerpo rígido entre pasos de tiempo se puede describir como una traslación y una rotación, tradicionalmente utilizando transformaciones afines almacenadas como matrices de 4x4. Alternativamente, se pueden usar cuaterniones para almacenar rotaciones y vectores para almacenar el desplazamiento de los objetos desde el origen. Los aspectos computacionalmente más costosos de la dinámica de cuerpos rígidos son la detección de colisiones , la corrección de la interpenetración entre los cuerpos y el entorno, y el manejo del contacto en reposo. Los cuerpos rígidos se suelen simular iterativamente, con retroceso para corregir errores utilizando pasos de tiempo más pequeños. El contacto en reposo entre múltiples cuerpos rígidos (como en el caso de que los cuerpos rígidos caigan en pilas o se apilen) puede ser particularmente difícil de manejar de manera eficiente y puede requerir gráficos complejos de contacto y propagación de choques para resolverse utilizando métodos basados ​​en impulsos. Al simular un gran número de cuerpos rígidos, a menudo se utilizan geometrías simplificadas o envolventes convexas para representar sus límites con el fin de detectar y responder a las colisiones (ya que este suele ser el cuello de botella en la simulación).

Simulación de cuerpos blandos

Los cuerpos blandos se pueden implementar fácilmente mediante sistemas de malla de resortes. Estos sistemas se componen de partículas simuladas individualmente que se atraen entre sí mediante fuerzas de resorte simuladas y experimentan resistencia por parte de amortiguadores simulados. Se pueden simular geometrías arbitrarias con mayor facilidad aplicando fuerzas de resorte y amortiguador a los nodos de una red y deformando el objeto con dicha red. Sin embargo, las soluciones explícitas para estos sistemas no son muy estables numéricamente y su comportamiento es extremadamente difícil de controlar mediante parámetros de resorte. Las técnicas que permiten crear cuerpos blandos físicamente plausibles y visualmente atractivos, que son numéricamente estables y que los artistas pueden configurar fácilmente, eran prohibitivamente caras en los inicios de los videojuegos, razón por la cual los cuerpos blandos no eran tan comunes como los cuerpos rígidos. La integración mediante métodos de Runge-Kutta puede utilizarse para aumentar la estabilidad numérica de técnicas inestables como las mallas de resortes, o bien se pueden utilizar pasos de tiempo más finos para la simulación (aunque esto es más costoso y no puede estabilizar las mallas de resortes para fuerzas arbitrariamente grandes). Técnicas como la coincidencia de formas y la dinámica basada en la posición abordan estos problemas pensando en los juegos interactivos y las simulaciones. La dinámica basada en la posición se utiliza en motores de juegos convencionales como Bullet (software) , Havok y PhysX . [ 3 ] [ 4 ] La estabilidad incondicional y la facilidad de configuración son propiedades particularmente deseables de las simulaciones de cuerpos blandos que pueden ser difíciles de lograr con sistemas de malla de resorte, aunque todavía se utilizan a menudo en juegos debido a su simplicidad y velocidad.

Simulación de fluidos

La dinámica de fluidos computacional puede ser costosa, y las interacciones entre múltiples cuerpos de fluido o con objetos/fuerzas externas pueden requerir lógica compleja para su evaluación. La simulación de fluidos generalmente se logra en los videojuegos simulando solo la altura de los cuerpos de agua para crear el efecto de olas, rizos u otras características de la superficie. Para cuerpos de líquido relativamente libres, a menudo se utilizan métodos lagrangianos o semilagrangianos para acelerar la simulación al tratar las partículas como elementos finitos de fluido (o portadores de propiedades físicas) y aproximar las ecuaciones de Navier-Stokes . [ 5 ] [ 6 ] Es poco común simular cuerpos de fluido en juegos, aunque las características de la superficie pueden simularse utilizando métodos similares y las simulaciones de fluidos pueden usarse para generar texturas o campos de altura para renderizar agua en tiempo real sin simulación en tiempo real (esto se hace comúnmente para grandes cuerpos de agua en juegos). Las simulaciones de fluidos pueden calcularse utilizando hardware gráfico comercial a través de GPGPU , y los campos de altura pueden calcularse de manera eficiente que dan como resultado un comportamiento similar a una ola utilizando métodos de Lattice Boltzmann . [ 7 ] Alternativamente, las características de la superficie y las ondas pueden simularse como partículas y un campo de altura generado a partir de las partículas simuladas en tiempo real. Esto también permite una interacción bidireccional eficiente entre el fluido y los objetos flotantes. [ 8 ]

Sistemas de partículas

Los sistemas de partículas son una técnica extremadamente popular para crear efectos visuales en películas y videojuegos debido a su facilidad de implementación, eficiencia, extensibilidad y control artístico. El ciclo de actualización de los sistemas de partículas generalmente consta de tres fases: generación, simulación y extinción. Estas fases consisten, respectivamente, en la introducción de nuevas partículas, su simulación durante el siguiente paso de tiempo y la eliminación de las partículas que han superado su vida útil. Los atributos físicos y visuales de las partículas suelen ser aleatorios durante la generación, y el artista controla el rango y la distribución de los atributos. Los sistemas de partículas pueden, además, generar sus propios sistemas de partículas para crear efectos más complejos y dinámicos, y su comportamiento de alto nivel puede coreografiarse mediante un marco de operadores, como en el artículo canónico de Sims. [ 9 ] Los primeros juegos que renderizaban sistemas de partículas sufrían de artefactos de recorte cuando las partículas intersecaban parcialmente la geometría del entorno, y este artefacto era especialmente notorio para las partículas grandes (que a menudo se usaban para representar el humo). Las partículas suaves abordan estos artefactos mediante un sombreado cuidadoso y la manipulación de la transparencia de las partículas, de modo que estas se vuelven más transparentes a medida que se acercan a las superficies.

Formación de bandadas

En la animación basada en la física, el fenómeno de formación de bandadas se refiere a una técnica que modela el comportamiento complejo de aves, bancos de peces y enjambres de insectos mediante fuerzas virtuales. Estas fuerzas virtuales simulan la tendencia de las bandadas a centrar sus velocidades, evitar colisiones y aglomeraciones, y moverse hacia el grupo. En estas simulaciones, los miembros individuales de la bandada (a veces llamados boids, abreviatura de bird-oid) actúan sin colaboración, utilizando únicamente información sobre la posición y la velocidad de sus pares para crear la ilusión de un comportamiento grupal sincronizado de manera eficiente. [ 10 ] La formación de bandadas también puede utilizarse para aproximar de manera eficiente el comportamiento de multitudes de humanos, y los métodos basados ​​en esta técnica se utilizan a menudo para multitudes de NPC en videojuegos. Unreal y Half-Life fueron algunos de los primeros juegos en implementar la formación de bandadas, que se utilizó para modelar el comportamiento de aves y criaturas voladoras presentes en niveles al aire libre.

Animación de personajes basada en la física

Los personajes en juegos y simulaciones se animan tradicionalmente mediante métodos como el fotograma clave que definen animaciones a través de composiciones de movimientos estáticos más pequeños secuenciados para transmitir un comportamiento más complejo. Visualmente, estos métodos estáticos no pueden transmitir fácilmente interacciones complejas con el entorno y hacen que el movimiento realista del personaje sea difícil de lograr. Las técnicas en animación de personajes basada en la física logran animaciones dinámicas que responden a la interacción del usuario, eventos externos y el entorno al optimizar los movimientos hacia objetivos específicos dadas restricciones basadas en la física como la minimización de energía. [ 11 ] La adopción de la animación de personajes basada en la física, en contraposición a los métodos más estáticos, ha sido lenta en la industria de los videojuegos debido al mayor costo y complejidad asociados con su uso. La animación de personajes basada en la física se ha utilizado en la serie de videojuegos Skate y en el juego de disparos en primera persona de desarrollo independiente StarForge .

Referencias

  1. Baraff; Witkin (1999). "Notas del curso de modelado basado en la física". SIGGRAPH . Curso 36.
  2. Reeves, W. "Sistemas de partículas: una técnica para modelar una clase de objetos difusos" (PDF) . ACM Transactions on Graphics .
  3. Müller, M.; B. Heidelberger; M. Hennix; J. Ratcliff (2006). "Position Based Dynamics" (PDF) . Actas de Virtual Reality Interactions and Physical Simulations (VRIPhys) .
  4. Müller, M.; B. Heidelberger; M. Teschner; M. Gross (2005). "Deformaciones sin malla basadas en la coincidencia de formas" . ACM Transactions on Graphics . 24 (3): 471– 478. doi : 10.1145/1073204.1073216 .
  5. Foster; Metaxas (1996). "Animación realista de líquidos" (PDF) . Modelos gráficos y procesamiento de imágenes . 58 (5): 471– 483. doi : 10.1006/gmip.1996.0039 .
  6. Stam, J. (1999). "Fluidos estables" (PDF) . SIGGRAPH . Archivado del original (PDF) el 15 de julio de 2019. Consultado el 1 de agosto de 2019 .
  7. Geist, Robert; Christopher Corsi; Jerry Tessendorf; James Westall (2010). "Ondas de agua de Lattice-Boltzmann" (PDF) . ISVC .
  8. Yuksel, Cem; Donald House; John Keyser (2007). "Partículas de onda" (PDF) . ACM Transactions on Graphics . 26 (3): 99. doi : 10.1145/1276377.1276501 .
  9. Sims, Karl (agosto de 1990). "Animación y renderizado de partículas mediante computación paralela de datos" (PDF) . Computer Graphics . 4. 24 (4): 405– 413. doi : 10.1145/97880.97923 .
  10. Reynolds, C. (1989). "Rebaños, manadas y cardúmenes: un modelo de comportamiento distribuido" . SIGGRAPH .
  11. Geijtenbeek, T.; N. Pronost; A. Egges; y MH Overmars (2011). "Animación interactiva de personajes mediante física simulada" (PDF) . Eurographics .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Physically_based_animation&oldid=1338850331 "