Detecção de colisão contínua entre dois tetraedros em movimento
Minha pergunta é bem simples. Eu tenho dois tetraedros, cada um com uma posição atual, uma velocidade linear no espaço, uma velocidade angular e um centro de massa (centro de rotação, na verdade).
Tendo esses dados, estou tentando encontrar um algoritmo (rápido) que determine com precisão (1) se eles colidiriam em algum momento, e se for o caso, (2) após quanto tempo colidiram e (3) ) o ponto de colisão.
A maioria das pessoas resolveria isso fazendo a detecção de colisão triângulo-triângulo, mas isso desperdiçaria alguns ciclos de CPU em operações redundantes, como verificar a mesma borda de um tetraedro contra a mesma borda do outro tetraedro ao verificar triângulos diferentes. Isso só significa que vou otimizar as coisas um pouco. Nada para se preocupar.
O problema é que eu não tenho conhecimento de nenhum algoritmo público de triangulo triangular CCD (detecção de colisão contínua) que leva em conta a auto-rotação.
Portanto, eu preciso de um algoritmo que seria inserido nos seguintes dados:
dados de vértice para três triângulosposição e centro de rotação / massavelocidade linear e velocidade angularE produziria o seguinte:
Se existe uma colisãoDepois de quanto tempo a colisão ocorreuEm que ponto no espaço ocorreu a colisãoAgradeço antecipadamente por sua ajuda.