• Aucun résultat trouvé

2.3 Détection des collisions entre corps déformables

2.4.2 Problématique des objets concaves

Dans cette partie, nous nous intéressons à l’influence des propriétés de convexité des objets simulés sur les choix algorithmiques effectués quant au processus de détection des collisions. Pour ce faire, nous nous intéressons aux algorithmes visant à la détection d’in- tersections vides dans le cadre de simulations mettant en scène des éléments polyédriques. Aussi, nous présentons dans un premier temps les approches les plus communément uti- lisées dans le cas convexe. Puis, nous discutons de l’adaptation de ces techniques dans le cas concave.

Cas des polyèdres convexes

Le cas des polyèdres convexes a grandement été exploré par la communauté scienti- fique travaillant sur la problématique de la détection des collisions. Aussi, il nous serait bien difficile de proposer une présentation exhaustive de l’ensemble des algorithmes pro- posés à ce jour et seules les approches les plus communément utilisées seront abordées.

2.4 – Adaptation du processus de détection des collisions en fonction des propriétés géométriques des objets simulés

– Calcul de distance

Parmi les approches de calcul de distance entre polyèdres convexes, trois techniques majeures peuvent être identifiées.

L’algorithme dit GJK, du nom de ses inventeurs, est probablement le plus connu. Ce dernier algorithme permet le calcul de la distance globale exacte séparant deux polyèdres convexes. Il est basé sur la différence de Minkowski avec optimisation convexe [CC86]. Afin d’éviter une construction explicite de cette dernière, l’algo- rithme GJK [GJK88] utilise une approximation par simplexes (Figure 2.12). L’al- gorithme GJK s’est vu apporter bon nombre d’améliorations, donnant lieu à l’ap- parition de plusieurs variantes telles que l’algorithme EGJK [Cam97].

FIG. 2.12 – Fonctionnement de l’algorithme GJK (Cas point / polyèdre) : A chaque itéra-

tion, la différence de Minkowski est calculée entre le point O et une portion du polyèdre (le simplexe). La détermination du point support du polyèdre selon cette direction permet l’identification d’un nouveau simplexe sur lequel l’opération est répétée jusqu’à conver- gence de l’algorithme.

L’algorithme DK [DK90] constitue également une technique intéressante. Il consiste en une approximation itérative des polyèdres. Il est à noter que, bien qu’il soit per- formant, cet algorithme ne fourni qu’une évaluation de la distance séparant les ob- jets, puisque calculée sur des approximations de ces derniers.

Enfin, la dernière technique est fondée sur le découpage de l’espace selon des cri- tères de proximité entre entités géométriques. Plus connue sous le nom de Voronoï

Marching [LC91], cette technique consiste à identifier, pour chaque élément de la

géométrie (arêtes et sommets), la zone de l’espace contenant les éléments dont il est le plus proche. On parle de régions de Voronoï (Figure 2.13).

FIG. 2.13 – Fonctionnement de la technique de Voronoï Marching : Grâce aux informa- tions de normales aux surfaces, la région de Voronoï de chaque entité est déterminée. La distance minimum séparant les deux polyèdres est nécessairement contenue dans les régions de Voronoï correspondant respectivement aux entités géométriques qui la déli- mitent.

– Identification d’un plan séparateur

Comme expliqué précédemment, la deuxième approche visant à contrôler qu’il n’y a pas d’intersection entre deux objets consiste en l’identification d’un plan sépara- teur délimitant deux zones de l’espace contenant respectivement l’un des objets. Pour ce faire, deux techniques sont proposées dans la littérature. La première consiste à calculer la borne minimale de la distance de séparation [Ber99]. La deuxième pro- pose d’identifier ce plan via des produits vectoriels [CW96].

Comme nous le verrons par la suite, le déplacement pseudo-continu des objets en- gendre une certaine cohérence quant au positionnement relatif des objets d’un pas de temps à l’autre. Aussi, dans [Bar90], l’auteur propose d’utiliser les plans sé- parateurs calculés lors des pas précédents (si ces derniers restent pertinents bien entendu), afin de ne pas avoir à les recalculer systématiquement. Cette technique est fondée sur la notion de cohérence spatio-temporelle introduite par la suite (Cf. paragraphe 2.5).

Cas des polyèdres concaves

La détection de collisions entre objets concaves est bien plus complexe que dans le cas convexe. Ce phénomène découle du fait que, dans le cas concave, plusieurs intersections

2.4 – Adaptation du processus de détection des collisions en fonction des propriétés géométriques des objets simulés

non-connexes peuvent être présentes au sein d’une même paire d’objets. Aussi, lorsque l’on s’intéresse aux approches proposées dans la littérature, on trouve de nombreux al- gorithmes visant à ramener le problème à des cas convexes : soit par décomposition des objets en composantes convexes, soit par l’utilisation de leur enveloppe convexe. Ces modes opératoires s’avèrent dans certains cas complexes, voir inefficaces. En effet, la dé- composition optimale d’une géométrie en éléments convexes impose que celle-ci réponde à certaines contraintes de connexité et d’orientation des normales. De plus, pour certaines formes géométriques, parfois simples, une telle décomposition génère un grand nombre d’éléments convexes (le tore en est un bon exemple), ce qui a pour effet d’augmenter la complexité géométrique de la scène. Pour ce qui est de l’utilisation de l’enveloppe convexe des objets, cette technique implique d’effectuer les tests de collisions sur des ap- proximations de ces derniers. Aussi, cette approche peut s’avérer inadaptée pour certaines formes géométriques (un fer à cheval par exemple).

Cependant, il existe des algorithmes spécialisés fonctionnant dans le cas concave. En ce qui concerne le calcul de distance globale entre objets, les approches proposées utilisent généralement des hiérarchies de volumes englobants [Qui94, EL01]. Des approches ont également été proposées quant à l’identification de plans séparateurs [HDLM96]. Ces dernières sont généralement assimilables à des problèmes d’optimisation [Zac01].

La simulation performante de scènes contenant des éléments non-convexes complexes constitue encore aujourd’hui l’une des problématiques les plus traitées par la communauté scientifique du domaine. Dans le cadre des travaux présentés dans la suite de ce mémoire, nous proposons une solution visant, entre autre, à répondre à cette problématique.