Estoy trabajando en un motor de física puramente continuo , y necesito elegir algoritmos para la detección de colisión de fase amplia y estrecha. "Puramente continuo" significa que nunca hago pruebas de intersección, sino que quiero encontrar formas de detectar cada colisión antes de que suceda, y poner cada una en la pila de "colisiones planificadas" que ordena TOI.
Fase amplia El único método continuo de fase amplia que se me ocurre es encerrar cada cuerpo en un círculo y probar si cada círculo se superpondrá con otro. Sin embargo, esto parece terriblemente ineficiente y carece de sacrificio.
Tampoco tengo idea de qué análogos continuos podrían existir para los métodos de eliminación selectiva de colisión discretos, como los árboles cuádruples. ¿Cómo puedo evitar las pruebas amplias inapropiadas e inútiles, como lo hace un motor discreto? También me gustaría poder ver colisiones con más de 1 fotograma por delante.
Fase estrecha
He logrado adaptar el SAT estrecho a una verificación continua en lugar de una discreta, pero estoy seguro de que existen otros algoritmos mejores en los documentos o sitios que podrían haber encontrado.
¿Qué algoritmos rápidos o precisos sugiere que use y cuáles son las ventajas / desventajas de cada uno?
Nota final:
Digo técnicas y no algoritmos porque aún no he decidido cómo almacenaré diferentes polígonos que podrían ser cóncavos, convexos, redondos o incluso tener agujeros. Planeo tomar una decisión sobre esto en función de lo que requiere el algoritmo (por ejemplo, si elijo un algoritmo que descompone un polígono en triángulos o formas convexas, simplemente almacenaré los datos del polígono en esta forma).