Participants : Stéphane Redon,
Abderhamanne Kheddar, Sabine Coquillart.
Mots clés : détection de collisions
.
Les algorithmes de détection de collisions discrets sont
généralement plus rapides que les algorithmes continus.
Cependant ils sont, pour deux raisons, peu adaptés à la
manipulation virtuelle. D'une part, puisque les collisions ne
sont testées qu'à certains instants, les objets trop rapides
ou trop fins peuvent passer au travers d'autres objets sans
qu'une quelconque interpénétration ne soit détectée. D'autre
part, même lorsqu'une interpénétration entre deux objets est
détectée, il est difficile de replacer ces deux objets de
faÇon que seules leurs surfaces soient en contact. Cette
étape est cependant indispensable si l'on souhaite pouvoir
gérer facilement des déplacements contraints (glissement d'un
cube virtuel sur un plan virtuel, par exemple).
Le choix d'un algorithme continu est donc naturel dans une
application de manipulation virtuelle, puisque la
connaissance de l'instant de collision permet de placer les
objets dans une position réaliste. Cependant, le mouvement
des objets entre les positions clés est parfois inconnu
(c'est le cas d'une main virtuelle dirigée par un gant de
données) ou trop complexe pour résoudre efficacement le
problème de la détection de collisions (ie, calculer
rapidement l'instant de collision). La solution consiste à
fixer arbitrairement le mouvement intermédiaire des objets
entre les positions clés. Ce mouvement doit être suffisamment
général pour interpoler deux positions clés quelconques, et
suffisamment simple pour résoudre facilement l'équation de
détection de collisions.
Les techniques proposées précédemment, qui utilisent le
mouvement connu des objets ou un mouvement arbitraire,
nécessitent des techniques numériques itératives pour
déterminer l'instant de collision. Un algorithme plus
efficace a été proposé [4] et
développé. Il consiste à utiliser une classe de mouvements
arbitraires dérivés d'un vissage pour interpoler les
positions clés des objets. En supposant que les objets sont
rigides et polyédriques, on montre qu'il existe une
sous-classe de mouvements intermédiaires qui conduit à une
équation de détection de collisions polynomiale de degré
inférieur ou égal à trois, résolue très rapidement au moyen
des formules de Cardan.