Dinámica del cuerpo blando


La dinámica de cuerpos blandos es un campo de los gráficos por computadora que se centra en simulaciones físicas visualmente realistas del movimiento y las propiedades de los objetos deformables (o cuerpos blandos ). [1] Las aplicaciones se encuentran principalmente en videojuegos y películas. A diferencia de la simulación de cuerpos rígidos , la forma de los cuerpos blandos puede cambiar, lo que significa que la distancia relativa de dos puntos en el objeto no es fija. Si bien las distancias relativas de los puntos no son fijas, se espera que el cuerpo conserve su forma hasta cierto punto (a diferencia de un fluido). El alcance de la dinámica del cuerpo blando es bastante amplio, incluida la simulación de materiales orgánicos blandos como músculos, grasa, cabello y vegetación, así como otros materiales deformables como la ropa y la tela. Generalmente, estos métodos solo proporcionan emulaciones visualmente plausibles en lugar de simulaciones científicas / de ingeniería precisas, aunque hay cierto cruce con métodos científicos, particularmente en el caso de simulaciones de elementos finitos. Actualmente, varios motores de física proporcionan software para la simulación de cuerpos blandos. [2] [3] [4] [5] [6] [7]

Los objetos de cuerpo blando reaccionan a las fuerzas y pueden chocar con otros objetos 3D. Este ejemplo ha sido creado con Blender .

La simulación de cuerpos blandos sólidos volumétricos [8] se puede realizar utilizando una variedad de enfoques.

Modelos de resorte / masa

Dos nodos como puntos de masa conectados por un circuito paralelo de un resorte y un amortiguador.

En este enfoque, el cuerpo se modela como un conjunto de masas puntuales (nodos) conectados por resortes elásticos ingrávidos ideales que obedecen a alguna variante de la ley de Hooke . Los nodos pueden derivar de los bordes de una representación de malla poligonal bidimensional de la superficie del objeto, o de una red tridimensional de nodos y bordes que modelan la estructura interna del objeto (o incluso un sistema unidimensional de enlaces, si, por ejemplo, se está simulando una cuerda o un mechón de pelo). Se pueden agregar resortes adicionales entre los nodos o modificar la ley de fuerza de los resortes para lograr los efectos deseados. Al aplicar la segunda ley de Newton a las masas puntuales, incluidas las fuerzas aplicadas por los resortes y cualquier fuerza externa (debida al contacto, gravedad, resistencia del aire, viento, etc.), se obtiene un sistema de ecuaciones diferenciales para el movimiento de los nodos, que es resuelto por esquemas numéricos estándar para resolver EDO . [9] La representación de una celosía masa-resorte tridimensional se realiza a menudo mediante deformación de forma libre , [10] en la que la malla renderizada se incrusta en la celosía y se distorsiona para adaptarse a la forma de la celosía a medida que evoluciona. Suponiendo que todas las masas puntuales sean iguales a cero, se puede obtener el método de cuadrícula estirada que tiene como objetivo la solución de varios problemas de ingeniería relacionados con el comportamiento de la cuadrícula elástica. Estos a veces se conocen como modelos de amortiguador de resorte de masa . En cuerpos blandos presurizados [11] , el modelo de masa de resorte se combina con una fuerza de presión basada en la ley de los gases ideales .

Simulación de elementos finitos

Este es un enfoque más preciso físicamente, que utiliza el método de elementos finitos ampliamente utilizado para resolver las ecuaciones diferenciales parciales que gobiernan la dinámica de un material elástico . El cuerpo se modela como un continuo elástico tridimensional rompiéndolo en una gran cantidad de elementos sólidos que encajan entre sí y resolviendo las tensiones y deformaciones en cada elemento utilizando un modelo del material. [12] Los elementos son típicamente tetraédricos, los nodos son los vértices de los tetraedros (existen métodos relativamente simples [13] [14] para tetraédricar una región tridimensional limitada por una malla poligonal en tetraedros , de manera similar a cómo un polígono bidimensional se puede triangular en triángulos). La deformación (que mide la deformación local de los puntos del material desde su estado de reposo) se cuantifica mediante el tensor de deformación . La tensión (que mide las fuerzas locales por unidad de área en todas las direcciones que actúan sobre el material) se cuantifica mediante el tensor de tensión de Cauchy . Dada la tensión local actual, la tensión local se puede calcular mediante la forma generalizada de la ley de Hooke : dónde es el " tensor de elasticidad " que codifica las propiedades del material (parametrizado en elasticidad lineal para un material isotrópico por la relación de Poisson y el módulo de Young ).

La ecuación de movimiento de los nodos de los elementos se obtiene integrando el campo de tensión sobre cada elemento y relacionándolo, mediante la segunda ley de Newton , con las aceleraciones de los nodos.

Pixelux (desarrolladores del sistema Digital Molecular Matter ) utilizan un enfoque basado en elementos finitos para sus cuerpos blandos, utilizando una malla tetraédrica y convirtiendo el tensor de tensión directamente en fuerzas de nodo. [15] El renderizado se realiza mediante una forma de deformación de forma libre . [10]

Métodos de minimización de energía

Este enfoque está motivado por principios variacionales y la física de las superficies, que dictan que una superficie restringida asumirá la forma que minimiza la energía total de deformación (análoga a una pompa de jabón ). Expresando la energía de una superficie en términos de su deformación local (la energía se debe a una combinación de estiramiento y flexión), la fuerza local en la superficie se obtiene al diferenciar la energía con respecto a la posición, lo que produce una ecuación de movimiento que puede ser resuelto de la manera estándar. [16] [17]

Coincidencia de formas

En este esquema, se aplican fuerzas de penalización o restricciones al modelo para impulsarlo hacia su forma original [18] (es decir, el material se comporta como si tuviera memoria de forma ). Para conservar el impulso, la rotación del cuerpo debe estimarse correctamente, por ejemplo, mediante la descomposición polar . Para aproximar la simulación de elementos finitos, la coincidencia de formas se puede aplicar a celosías tridimensionales y se pueden combinar múltiples restricciones de coincidencia de formas. [19]

Deformación basada en cuerpos rígidos

La deformación también puede ser manejada por un motor de física de cuerpo rígido tradicional , modelando el movimiento de cuerpo blando usando una red de múltiples cuerpos rígidos conectados por restricciones, y usando (por ejemplo) el revestimiento de paleta de matriz para generar una malla de superficie para renderizar. Este es el enfoque utilizado para objetos deformables en Havok Destruction . [20]

En el contexto de los gráficos por computadora, la simulación de tela se refiere a la simulación de cuerpos blandos en forma de membranas elásticas continuas bidimensionales, es decir, para este propósito, se puede ignorar la estructura real de la tela real en el nivel del hilo (aunque la tela de modelado en el nivel del hilo). [21] A través de efectos de renderizado , esto puede producir una emulación visualmente plausible de textiles y prendas de vestir , utilizados en una variedad de contextos en videojuegos, animación y películas. También se puede utilizar para simular láminas bidimensionales de materiales distintos a los textiles, como paneles metálicos deformables o vegetación. En los videojuegos se suele utilizar para realzar el realismo de personajes animados vestidos .

Los simuladores de tela se basan generalmente en modelos de resorte de masa , pero se debe hacer una distinción entre solucionadores basados ​​en fuerza y ​​basados ​​en posición.

Paño a base de fuerza

El modelo masa-resorte (obtenido a partir de una representación de malla poligonal de la tela) determina las fuerzas internas del resorte que actúan sobre los nodos en cada paso de tiempo (en combinación con la gravedad y las fuerzas aplicadas). La segunda ley de Newton proporciona ecuaciones de movimiento que pueden resolverse mediante solucionadores estándar de ODE . Para crear tela de alta resolución con una rigidez realista no es posible, sin embargo, con simples explícitas solucionadores (como avance la integración de Euler ), a menos que el paso de tiempo se hace demasiado pequeño para aplicaciones interactivas (ya que como es bien sabido, explícitas integradores son numéricamente inestable para lo suficientemente rígido sistemas). Por lo tanto, deben usarse solucionadores implícitos , [22] que requieren la solución de un gran sistema de matriz dispersa (por ejemplo, mediante el método de gradiente conjugado ), que en sí mismo también puede ser difícil de lograr a velocidades de cuadro interactivas. Una alternativa [23] [24] es utilizar un método explícito con baja rigidez, con métodos ad hoc para evitar la inestabilidad y el estiramiento excesivo (por ejemplo, correcciones que limitan la deformación).

Dinámica basada en posiciones

Para evitar la necesidad de hacer una costosa solución implícita de un sistema de ODE , muchos simuladores de tela en tiempo real (notablemente PhysX , Havok Cloth y Maya nCloth ) utilizan la dinámica basada en la posición (PBD), [25] un enfoque basado en la relajación de restricciones. El modelo masa-resorte se convierte en un sistema de restricciones, que exige que la distancia entre los nodos conectados sea igual a la distancia inicial. Este sistema se resuelve de forma secuencial e iterativa, moviendo directamente los nodos para satisfacer cada restricción, hasta obtener una tela suficientemente rígida. Esto es similar a una solución de Gauss-Seidel del sistema de matriz implícita para el modelo masa-resorte. Sin embargo, se debe tener cuidado de resolver las restricciones en la misma secuencia en cada paso de tiempo, para evitar oscilaciones falsas y para asegurarse de que las restricciones no violen la conservación del momento lineal y angular . Se pueden aplicar restricciones de posición adicionales, por ejemplo, para mantener los nodos dentro de las regiones de espacio deseadas (lo suficientemente cerca de un modelo animado, por ejemplo), o para mantener la forma general del cuerpo mediante la coincidencia de formas.

La interacción realista de objetos blandos simulados con su entorno puede ser importante para obtener resultados visualmente realistas. La auto-intersección de la tela es importante en algunas aplicaciones para prendas simuladas aceptablemente realistas. Esto es un desafío para lograrlo a velocidades de cuadro interactivas, particularmente en el caso de detectar y resolver auto-colisiones y colisiones mutuas entre dos o más objetos deformables.

La detección de colisiones puede ser discreta / a posteriori (lo que significa que los objetos avanzan en el tiempo a través de un intervalo predeterminado, y luego cualquier penetración detectada y resuelta), o continua / a priori (los objetos avanzan solo hasta que ocurre una colisión, y la colisión es manejado antes de continuar). El primero es más fácil de implementar y más rápido, pero conduce a fallas en la detección de colisiones (o detección de colisiones falsas) si los objetos se mueven lo suficientemente rápido. Los sistemas en tiempo real generalmente tienen que utilizar la detección de colisiones discreta, con otras formas ad hoc para evitar fallas en la detección de colisiones.

La detección de colisiones entre la tela y los objetos ambientales con un "interior" bien definido es sencilla, ya que el sistema puede detectar sin ambigüedades si los vértices y las caras de la malla de la tela se cruzan con el cuerpo y resolverlos en consecuencia. Si no existe un "interior" bien definido (por ejemplo, en el caso de colisión con una malla que no forma un límite cerrado), se puede construir un "interior" mediante extrusión. Las colisiones mutuas o propias de cuerpos blandos definidos por tetraedros son sencillas, ya que se reducen a la detección de colisiones entre tetraedros sólidos.

Sin embargo, la detección de colisiones entre dos telas poligonales (o la colisión de una tela consigo misma) a través de la detección de colisión discreta es mucho más difícil, ya que no existe una forma inequívoca de detectar localmente después de un intervalo de tiempo si un nodo de tela que ha penetrado está en el " lado equivocado o no. Las soluciones implican utilizar el historial del movimiento de la tela para determinar si se ha producido un evento de intersección o realizar un análisis global del estado de la tela para detectar y resolver las autointersecciones. Pixar ha presentado un método que utiliza un análisis topológico global de las intersecciones de la malla en el espacio de configuración para detectar y resolver la autointerpenetración de la tela. [26] Actualmente, esto es generalmente demasiado costoso computacionalmente para los sistemas de tela en tiempo real.

Para realizar la detección de colisiones de manera eficiente, las primitivas que ciertamente no chocan deben identificarse lo antes posible y descartarse de la consideración para evitar perder tiempo. Para hacer esto, es esencial alguna forma de esquema de subdivisión espacial , para evitar una prueba de fuerza bruta decolisiones primitivas. Los enfoques utilizados incluyen:

  • Límites de jerarquías de volumen ( árboles AABB , [27] árboles OBB , árboles esféricos )
  • Cuadrículas, uniformes [28] (usando hash para la eficiencia de la memoria) o jerárquicas (por ejemplo , Octree , kd-tree )
  • Esquemas de explotación de coherencia, como barrer y podar con ordenación por inserción, o colisiones árbol-árbol con seguimiento frontal.
  • Métodos híbridos que implican una combinación de varios de estos esquemas, por ejemplo, un árbol AABB grueso más barrer y podar con coherencia entre las hojas que chocan.

Otros efectos que pueden simularse mediante los métodos de dinámica de cuerpos blandos son:

  • Materiales destructibles : fractura de sólidos quebradizos, corte [29] de cuerpos blandos y desgarro de tela. El método de elementos finitos es especialmente adecuado para modelar fracturas [15] ya que incluye un modelo realista de la distribución de tensiones internas en el material, que físicamente es lo que determina cuándo se produce la fractura, según la mecánica de la fractura .
  • Plasticidad [18] (deformación permanente) y fusión [30]
  • Cabello, [31] piel y plumas simulados
  • Órganos simulados para aplicaciones biomédicas [32]

La simulación de fluidos en el contexto de los gráficos por computadora normalmente no se consideraría dinámica de cuerpo blando, que generalmente se limita a la simulación de materiales que tienen una tendencia a conservar su forma y forma. Por el contrario, un fluido asume la forma de cualquier recipiente que lo contenga, ya que las partículas están unidas por fuerzas relativamente débiles.

Motores de simulación

Juegos

  • Cuerpo deformable
  • Dinámica corporal rígida
  • Modelado de tela
  • Física mamaria

  1. ^ Nealen, Müller, Keizer, Boxerman y Carlson (2005). "Modelos deformables basados ​​en la física en gráficos por computadora". CiteSeerX  10.1.1.124.4664 . Falta o vacío |url=( ayuda )CS1 maint: varios nombres: lista de autores ( enlace )
  2. ^ "Software de Numerion - Física del carbono" .
  3. ^ "Cuerpos blandos PhysX" .
  4. ^ "Materia molecular digital de Pixelux (DMM)" .
  5. ^ "Paño Havok" .
  6. ^ "Física de la bala" .
  7. ^ "Núcleo Maya" .
  8. ^ "Doc: 2.4 / Manual / Física / Cuerpos blandos 2.46 - BlenderWiki" . wiki.blender.org . Consultado el 19 de septiembre de 2015 .
  9. ^ Desbrun, Schroder y Barr (1999). "Animación interactiva de objetos estructurados deformables" (PDF) .
  10. ^ a b Sederberg y Parry (1986). "Deformación de forma libre de modelos geométricos sólidos" (PDF) .
  11. ^ Matyka y Ollila (2003). "Un modelo de presión para la simulación de cuerpos blandos" (PDF) .
  12. ^ Kaufmann, Martin, Botsch y Gross (2008). "Simulación flexible de modelos deformables utilizando Galerkin FEM discontinuo" (PDF) .CS1 maint: varios nombres: lista de autores ( enlace )
  13. ^ Spillmann, Wagner y Teschner (2006). "Mallado tetraédrico robusto de sopas triangulares" (PDF) .
  14. ^ Bridson, Teran, Molino y Fedkiw (2003). "Generación de malla tetraédrica basada en la física adaptativa utilizando conjuntos de niveles" (PDF) .CS1 maint: varios nombres: lista de autores ( enlace )
  15. ^ a b Parker y O'Brien (2009). "Deformación y fractura en tiempo real en un entorno de juego" .
  16. ^ Terzopoulos, Platt, Barr y Fleischer (1987). "Modelos elásticamente deformables" (PDF) .CS1 maint: varios nombres: lista de autores ( enlace )
  17. ^ Wardetzky, Bergou, Harmon, Zorin y Grinspun (2007). "Energías de curvatura cuadrática discreta" (PDF) .CS1 maint: varios nombres: lista de autores ( enlace )
  18. ^ a b Müller, Heidelberger, Teschner y Gross (2005). "Deformaciones sin malla basadas en la coincidencia de formas" (PDF) .CS1 maint: varios nombres: lista de autores ( enlace )
  19. ^ Steinemann, Otaduy y Gross (2008). "Deformaciones a juego de formas adaptables rápidas" .
  20. ^ "Destrucción de Havok" .
  21. ^ Kaldor, James y Marschner (2008). "Simulación de tejido de punto a nivel de hilo" (PDF) .
  22. ^ Baraff y Witkin (1998). "Grandes pasos en la simulación de tela" (PDF) .
  23. ^ Provot (1997). "Manejo de colisiones y auto-colisiones en modelo de tela dedicado al diseño de prendas". CiteSeerX  10.1.1.89.9232 . Falta o vacío |url=( ayuda )
  24. ^ Bridson, Fedkiw y Anderson (2002). "Tratamiento robusto de colisiones, contacto y fricción para animación de tela" (PDF) .
  25. ^ Müller, Heidelberger, Hennix y Ratcliff (2006). "Dinámica basada en la posición" (PDF) .CS1 maint: varios nombres: lista de autores ( enlace )
  26. ^ Baraff, Witkin y Kass (2003). "Paño para desenredar" (PDF) .
  27. ^ Van Den Bergen (1998). "Detección eficiente de colisiones de modelos deformables complejos utilizando árboles AABB" (PDF) .
  28. ^ Teschner, Heidelberger, Müller, Pomeranets y Gross (2003). "Hashing espacial optimizado para la detección de colisiones de objetos deformables" (PDF) .CS1 maint: varios nombres: lista de autores ( enlace )
  29. ^ Steinemann, Otaduy y Gross (2006). "División arbitraria rápida de objetos deformantes" (PDF) .
  30. ^ Müller, Keizer, Nealen, Pauly, Gross y Alexa (2004). "Animación puntual de objetos elásticos, plásticos y fundidos" (PDF) .CS1 maint: varios nombres: lista de autores ( enlace )
  31. ^ Selle, Lentine y Fedkiw (2008). "Un modelo de primavera en masa para la simulación del cabello" .
  32. ^ "¿Cuándo hará el corte la cirugía virtual?" . Scientific American . 2007.

  • "La Animación de Fenómenos Naturales", curso de CMU sobre animación de base física, incluyendo cuerpos deformables
  • Ejemplo de video de dinámica de cuerpo blando
  • Articulo introductorio
  • Artículo de Thomas Jakobsen que explica los conceptos básicos del método PBD