La física del cuerpo rígido es en realidad bastante simple en concepto, es decir, los comportamientos que un motor está tratando de crear no son muy complicados. Probablemente por eso las bibliotecas que miró le parecen bastante simples.
El truco es que hacer un sim que sea robusto , estable y rápido , incluso en presencia de errores de coma flotante y bajas tasas de cuadros variables, es bastante difícil y generalmente implica una gran cantidad de ajustes y violines. Lo que complica aún más el problema es el hecho de que muchas personas extremadamente inteligentes han hecho esfuerzos heroicos para encontrar mejores soluciones, y han creado algoritmos hermosos y poderosos pero difíciles de entender que le han dado al campo una reputación de magia negra.
En general, un motor de física se ocupará de tres cosas (el orden en que las hace en el bucle interno varía):
- Integración (aproximando las ecuaciones de movimiento newtonianas),
- Detección de colisión, y
- Resolución de restricciones (actualización de posiciones y velocidades para satisfacer la no penetración u otras restricciones especificadas por el usuario).
Para la mayoría de estos, existen algoritmos simples pero no tan precisos como algoritmos complejos pero más precisos. Para comenzar:
- Para la integración, la mayoría de las personas usan Symplectic Euler o Verlet (que en realidad son equivalentes. Puede leer sobre integración numérica si lo desea, pero el consenso parece ser que los métodos baratos de primer orden están bien.
- Puede encontrar todas las referencias de detección de colisión que desee en la página de recursos de representación en tiempo real .
- Para la resolución de restricciones, el método de impulsos secuenciales es muy fácil de entender. Erin Catto (autora de Box2D) hace una presentación en GDC todos los años: las diapositivas están vinculadas desde la página principal de Box2D . Las diapositivas de 2006 cubren los impulsos secuenciales bastante bien. También puede buscar métodos más sofisticados como Featherstone o Gauss-Seidel proyectado.
Hay una excelente introducción a los métodos simples y lo que puede salir mal en los primeros capítulos del libro recién publicado Game Physics Pearls.