stringtranslate.com

motor de fisica

Un motor de física es un software informático que proporciona una simulación aproximada de ciertos sistemas físicos , como la dinámica de cuerpos rígidos (incluida la detección de colisiones ), la dinámica de cuerpos blandos y la dinámica de fluidos , de uso en los dominios de los gráficos por computadora , los videojuegos y el cine ( CGI) . ). Sus principales usos son en videojuegos (normalmente como middleware ), en cuyo caso las simulaciones son en tiempo real . El término a veces se utiliza de forma más general para describir cualquier sistema de software para simular fenómenos físicos, como la simulación científica de alto rendimiento .

Descripción

Generalmente existen dos clases de motores de física : en tiempo real y de alta precisión. Los motores de física de alta precisión requieren más potencia de procesamiento para calcular física muy precisa y suelen ser utilizados por científicos y películas animadas por computadora. Los motores de física en tiempo real, como los que se usan en videojuegos y otras formas de computación interactiva, utilizan cálculos simplificados y menor precisión para calcular a tiempo para que el juego responda a un ritmo adecuado para el juego. Un motor de física es esencialmente una gran calculadora que realiza las matemáticas necesarias para simular la física. [1]

Motores científicos

Una de las primeras computadoras de propósito general, ENIAC , se utilizó como un tipo muy simple de motor de física. Se utilizó para diseñar tablas balísticas para ayudar al ejército de los Estados Unidos a estimar dónde aterrizarían los proyectiles de artillería de diversas masas cuando se disparaban en diferentes ángulos y cargas de pólvora, teniendo en cuenta también la deriva causada por el viento. Los resultados se calcularon una sola vez y se tabularon en tablas impresas que se entregaron a los comandantes de artillería.

Los motores de física se han utilizado comúnmente en supercomputadoras desde la década de 1980 para realizar modelos computacionales de dinámica de fluidos , donde a las partículas se les asignan vectores de fuerza que se combinan para mostrar la circulación. Debido a los requisitos de velocidad y alta precisión, se desarrollaron procesadores informáticos especiales conocidos como procesadores vectoriales para acelerar los cálculos. Las técnicas se pueden utilizar para modelar patrones climáticos en el pronóstico del tiempo , datos de túneles de viento para diseñar aviones y embarcaciones o vehículos de motor, incluidos autos de carreras, y enfriamiento térmico de procesadores de computadora para mejorar los disipadores de calor . Como ocurre con muchos procesos informáticos cargados de cálculos, la precisión de la simulación está relacionada con la resolución de la simulación y la precisión de los cálculos; pequeñas fluctuaciones no modeladas en la simulación pueden cambiar drásticamente los resultados previstos.

Los fabricantes de neumáticos utilizan simulaciones físicas para examinar cómo se comportarán los nuevos tipos de bandas de rodadura en condiciones húmedas y secas, utilizando nuevos materiales de neumáticos de diferente flexibilidad y bajo diferentes niveles de carga de peso.

Motores de juego

En la mayoría de los juegos de ordenador, la velocidad de los procesadores y la jugabilidad son más importantes que la precisión de la simulación. Esto lleva a diseños de motores de física que producen resultados en tiempo real pero que replican la física del mundo real sólo en casos simples y normalmente con cierta aproximación. La mayoría de las veces, la simulación está orientada a proporcionar una aproximación "perceptualmente correcta" en lugar de una simulación real. Sin embargo, algunos motores de juegos, como Source , utilizan la física en acertijos o en situaciones de combate. Esto requiere una física más precisa para que, por ejemplo, el impulso de un objeto pueda derribar un obstáculo o levantar un objeto que se hunde.

En el pasado, la animación de personajes basada en la física solo usaba dinámicas de cuerpos rígidos porque son más rápidas y fáciles de calcular, pero los juegos y películas modernos están comenzando a usar la física de cuerpos blandos . La física de cuerpo blando también se utiliza para efectos de partículas, líquidos y telas. A veces se proporciona alguna forma de simulación de dinámica de fluidos limitada para simular agua y otros líquidos, así como el flujo de fuego y explosiones a través del aire.

Detección de colisiones

Los objetos de los juegos interactúan con el jugador, el entorno y entre sí. Normalmente, la mayoría de los objetos 3D de los juegos están representados por dos mallas o formas separadas. Una de estas mallas es la forma altamente compleja y detallada visible para el jugador en el juego, como un jarrón con elegantes asas curvas y en forma de bucle. A efectos de velocidad, se utiliza una segunda malla invisible simplificada para representar el objeto en el motor de física, de modo que el motor de física trate el jarrón de ejemplo como un simple cilindro. Por lo tanto, sería imposible insertar una varilla o disparar un proyectil a través de los orificios de las manijas del jarrón, porque el modelo del motor físico se basa en el cilindro y desconoce las manijas. La malla simplificada utilizada para el procesamiento físico a menudo se denomina geometría de colisión. Puede ser un cuadro delimitador , una esfera o un casco convexo . Los motores que utilizan cuadros delimitadores o esferas delimitadoras como forma final para la detección de colisiones se consideran extremadamente simples. Generalmente, se utiliza un cuadro delimitador para la detección de colisiones de fase amplia para reducir el número de posibles colisiones antes de que se realice la costosa detección de colisiones de malla sobre malla en la fase estrecha de detección de colisiones.

Otro aspecto de la precisión en la detección de colisiones discretas implica la velocidad de fotogramas , o el número de momentos por segundo cuando se calcula la física. Cada cuadro se trata como separado de todos los demás cuadros y el espacio entre cuadros no se calcula. Una velocidad de fotogramas baja y un objeto pequeño que se mueve rápidamente provocan una situación en la que el objeto no se mueve suavemente a través del espacio, sino que parece teletransportarse de un punto en el espacio al siguiente a medida que se calcula cada fotograma. Los proyectiles que se mueven a velocidades suficientemente altas no alcanzarán el objetivo, si el objetivo es lo suficientemente pequeño como para caber en el espacio entre los marcos calculados del proyectil que se mueve rápidamente. Se utilizan varias técnicas para superar este defecto, como la representación de Second Life de los proyectiles como flechas con colas invisibles más largas que el espacio entre los fotogramas para colisionar con cualquier objeto que pueda caber entre los fotogramas calculados. Por el contrario, la detección continua de colisiones como en Bullet o Havok no sufre este problema.

Dinámica del cuerpo blando

Una alternativa al uso de sistemas de física de cuerpos rígidos basados ​​en cuadros delimitadores es utilizar un sistema basado en elementos finitos . En tal sistema, se crea un mosaico volumétrico tridimensional del objeto 3D. La teselación da como resultado una serie de elementos finitos que representan aspectos de las propiedades físicas del objeto, como dureza, plasticidad y preservación del volumen. Una vez construidos, un solucionador utiliza los elementos finitos para modelar la tensión dentro del objeto 3D. La tensión se puede utilizar para provocar fracturas, deformaciones y otros efectos físicos con un alto grado de realismo y singularidad. A medida que aumenta el número de elementos modelados, aumenta la capacidad del motor para modelar el comportamiento físico. La representación visual del objeto 3D es alterada por el sistema de elementos finitos mediante el uso de un sombreador de deformación ejecutado en la CPU o GPU. Los sistemas basados ​​en elementos finitos no habían sido prácticos para su uso en juegos debido a la sobrecarga de rendimiento y la falta de herramientas para crear representaciones de elementos finitos a partir de objetos de arte 3D. Con procesadores de mayor rendimiento y herramientas para crear rápidamente teselaciones volumétricas, los sistemas de elementos finitos en tiempo real comenzaron a usarse en los juegos, comenzando con Star Wars: The Force Unleashed que utilizó Materia Molecular Digital para los efectos de deformación y destrucción de madera, acero, carne y plantas utilizando un algoritmo desarrollado por el Dr. James O'Brien como parte de su tesis doctoral. [2]

movimiento browniano

En el mundo real, la física siempre está activa. Hay un constante movimiento browniano en todas las partículas de nuestro universo a medida que las fuerzas se empujan unas contra otras. Para un motor de física de juego , una precisión activa tan constante desperdicia innecesariamente la potencia limitada de la CPU, lo que puede causar problemas como una disminución de la velocidad de fotogramas . Por lo tanto, los juegos pueden poner objetos a "dormir" al desactivar el cálculo de la física en objetos que no se han movido una distancia particular dentro de un cierto período de tiempo. Por ejemplo, en el mundo virtual 3D Second Life , si un objeto está apoyado en el suelo y no se mueve más allá de una distancia mínima en aproximadamente dos segundos, los cálculos físicos se desactivan para el objeto y queda congelado en su lugar. El objeto permanece congelado hasta que el procesamiento físico se reactiva para el objeto después de que se produzca una colisión con algún otro objeto físico activo. [3]

Paradigmas

Los motores de física para videojuegos suelen tener dos componentes centrales, un sistema de detección de colisiones / respuesta a colisiones y el componente de simulación dinámica responsable de resolver las fuerzas que afectan a los objetos simulados. Los motores de física modernos también pueden contener simulaciones de fluidos , sistemas de control de animación y herramientas de integración de activos . Existen tres paradigmas principales para la simulación física de sólidos: [4]

Finalmente, son posibles métodos híbridos que combinen aspectos de los paradigmas anteriores.

Limitaciones

Un límite principal del realismo del motor de física es el resultado aproximado de las resoluciones de restricciones y el resultado de la colisión debido a la lenta convergencia de los algoritmos. La detección de colisiones calculada con una frecuencia demasiado baja puede provocar que los objetos pasen entre sí y luego sean repelidos con una fuerza de corrección anormal. Por otro lado, los resultados aproximados de la fuerza de reacción se deben a la lenta convergencia del solucionador Gauss Seidel proyectado típico, que produce un rebote anormal. Cualquier tipo de objeto físico compuesto de movimiento libre puede demostrar este problema, pero es especialmente propenso a afectar los eslabones de la cadena bajo alta tensión y los objetos con ruedas con superficies de soporte físico activo. Una mayor precisión reduce los errores de posición/fuerza, pero a costa de necesitar mayor potencia de CPU para los cálculos.

Unidad de procesamiento de física (PPU)

Una unidad de procesamiento de física (PPU) es un microprocesador dedicado diseñado para manejar los cálculos de física, especialmente en el motor de física de los videojuegos . Ejemplos de cálculos que involucran una PPU pueden incluir dinámica de cuerpos rígidos , dinámica de cuerpos blandos , detección de colisiones , dinámica de fluidos , simulación de cabello y ropa, análisis de elementos finitos y fractura de objetos. La idea es que los procesadores especializados descarguen tareas que consumen mucho tiempo de la CPU de una computadora, de manera muy similar a cómo una GPU realiza operaciones gráficas en lugar de la CPU principal. El término fue acuñado por el marketing de Ageia para describir su chip PhysX a los consumidores. Varias otras tecnologías en el espectro CPU-GPU tienen algunas características en común, aunque la solución de Ageia fue la única completa diseñada, comercializada, respaldada y colocada dentro de un sistema exclusivamente como PPU.

Computación de propósito general en unidad de procesamiento de gráficos (GPGPU)

La aceleración de hardware para el procesamiento físico ahora generalmente la proporcionan unidades de procesamiento de gráficos que admiten computación más general, un concepto conocido como computación de propósito general en unidades de procesamiento de gráficos (GPGPU). AMD y NVIDIA brindan soporte para cálculos de dinámica de cuerpos rígidos en sus últimas tarjetas gráficas.

La serie GeForce 8 de NVIDIA admite una tecnología de aceleración de física newtoniana basada en GPU llamada Quantum Effects Technology . NVIDIA proporciona un kit de herramientas SDK para la tecnología CUDA ( Arquitectura de dispositivo unificado de cómputo ) que ofrece una API de bajo y alto nivel para la GPU. [5] Para sus GPU, AMD ofrece un SDK similar, llamado Close to Metal (CTM), que proporciona una interfaz de hardware delgada.

PhysX es un ejemplo de un motor de física que puede utilizar aceleración de hardware basada en GPGPU cuando esté disponible.

motores

Motores de física en tiempo real

Motores de física de alta precisión.

Ver también

Referencias

  1. ^ Millington, Ian (7 de marzo de 2007). Desarrollo de motores de física de juegos. Prensa CRC. ISBN 978-1-4822-6732-7.
  2. ^ "Modelado gráfico y animación de fractura frágil". Gráficos.eecs.berkeley.edu . Consultado el 1 de septiembre de 2012 .
  3. ^ "Doc: Manual/Motor de juego/Lógica/Tipo de objeto/Cuerpo rígido - BlenderWiki". Wiki.blender.org. 2009-11-20. Archivado desde el original el 1 de octubre de 2011 . Consultado el 16 de agosto de 2010 .
  4. ^ Erleben, Kenny; Deportivo, Jon; Henriksen, Knud; Dohlmann, Henrik (2005). Animación basada en la física .
  5. ^ "Página de características de NVIDIA 8800: tecnología de efectos cuánticos". Nvidia.com . Consultado el 16 de agosto de 2010 .
  6. ^ Repositorio GitHub de Jolt Physics

Otras lecturas

enlaces externos