Detección continua de colisiones entre dos tetraedros en movimiento.

Mi pregunta es bastante simple. Tengo dos tetraedros, cada uno con una posición actual, una velocidad lineal en el espacio, una velocidad angular y un centro de masa (centro de rotación, en realidad).

Teniendo estos datos, estoy tratando de encontrar un algoritmo (rápido) que determinaría con precisión (1) si colisionarían en algún momento en el tiempo, y si ese es el caso, (2) después de cuánto tiempo colisionaron y (3) ) el punto de colisión.

La mayoría de las personas resolverían esto haciendo una detección de colisión triángulo-triángulo, pero esto desperdiciaría unos pocos ciclos de CPU en operaciones redundantes, como verificar el mismo borde de un tetraedro contra el mismo borde del otro tetraedro al verificar diferentes triángulos. Esto solo significa que voy a optimizar las cosas un poco. Nada de que preocuparse.

El problema es que no conozco ningún algoritmo de triángulo-triángulo CCD (detección de colisión continua) que tenga en cuenta la rotación automática.

Por lo tanto, necesito un algoritmo en el que se ingresen los siguientes datos:

Datos de vértice para tres triángulos.Posición y centro de rotación / masa.Velocidad lineal y velocidad angular.

Y saldría lo siguiente:

Si hay una colisiónDespués de cuánto tiempo ocurrió la colisiónEn qué punto del espacio ocurrió la colisión.

Gracias de antemano por tu ayuda.

Respuestas a la pregunta(7)

Su respuesta a la pregunta