¿Qué es?
Software que hace avanzar un mundo de cuerpos en pasos de tiempo pequeños: acumular fuerzas, integrar velocidades y posiciones (Euler semiimplícito o Verlet), detectar colisiones y resolver contactos. Un resolvedor numérico de EDO ajustado para la velocidad y la estabilidad más que para la precisión.
¿Por qué existe?
Los videojuegos y el cine necesitan movimiento plausible en tiempo real para miles de objetos. No hay soluciones exactas, y la precisión importa menos que no explotar nunca: un ragdoll que tiembla es un error; uno que se desvía un 1 %, no.
Fórmulas
- Euler semiimplícito (simpléctico)
- integración de Verlet (segundo orden, simpléctica)
¿Cómo se calcula?
en cada fotograma (h = 1/60 s, a menudo en subpasos):
para cada cuerpo: F = gravedad + muelles + fuerzas del usuario
para cada cuerpo: v += h · F/m ; x += h · v # Euler semiimplícito
detectar colisiones; aplicar impulsos para corregir contactos
¿Por qué importa?
Unity, Unreal, Godot, los simuladores robóticos (MuJoCo, Isaac) y las herramientas de efectos visuales tienen uno en su núcleo; las versiones diferenciables permiten a los robots aprender por descenso de gradiente a través de la física.
Las matemáticas que hay detrás
Posiciones, velocidades y fuerzas son vectores 3D que se actualizan en cada fotograma.
Los motores guardan posiciones y sus derivadas (velocidades) y las avanzan fotograma a fotograma.
Los integradores explícitos con un paso demasiado grande explotan; los motores eligen esquemas estables y subdividen el paso.
Un motor físico integra , para cada cuerpo en cada fotograma.
Euler semiimplícito es el integrador por defecto de Box2D, Bullet y la mayoría de motores de juego.
Las posiciones son integrales de las velocidades, y las velocidades, de las aceleraciones.
Integrar la velocidad da la posición: cada paso de simulación es una aplicación diminuta del TFC.
Los integradores (Euler, Verlet) son desarrollos de Taylor truncados del movimiento en el paso de tiempo.
Muelles y amortiguadores mueven la tela, los ragdolls, el suavizado de cámara y las suspensiones de vehículos.
La tela y los cuerpos blandos usan integración implícita (Baraff–Witkin) para que los muelles rígidos no exploten.
La simulación supone que el movimiento es continuo entre fotogramas; las colisiones lo rompen y se tratan aparte.
Los integradores implícitos para sistemas rígidos (tela, cuerpos blandos) resuelven un sistema no lineal con Newton en cada paso.
El viento, los pozos de gravedad y los efectos de partículas se aplican como campos de fuerzas.
Las fuerzas no lipschitzianas (contactos, cambios de rozamiento) rompen la unicidad, y por eso los motores las tratan aparte.
¿Dónde se utiliza?
Temas de informática a los que se llega desde aquí, con la cadena de ideas que lleva a ellos: