• Aucun résultat trouvé

Vers une nouvelle g´en´eration d’op´erateurs de composition

Chapitre 5 Surfaces implicites 23

5.5 Vers une nouvelle g´en´eration d’op´erateurs de composition

support compact, les adaptations sont suffisamment simples `a effectuer (les d´etails sont donn´es dans [BBCW10]) pour que nous les consid´erions dans la mˆeme famille.

Nous voil`a donc d´ebut 2009, un peu plus de six ans plus tard, avec un nouveau besoin au niveau des mod`eles de repr´esentation de surfaces. Prenant s´erieusement en compte la discussion expos´ee section 4.4, et consid´erant la forte diff´erence de ressources en calculs (via le CPU et le GPU) et en m´emoire, j’ai pris part `a ce projet. En parall`ele, je co-encadrais Olivier Gourmel et Anthony Pajot avec Mathias Paulin et Pierre Poulin, sur la visualisation haute qualit´e, en temps-r´eel ou interactif, d’un nombre massif de fonctions potentiel sph´eriques dynamiques `a support compact [OGP10] (section 7.3.3). Nous avons propos´e une solution efficace utilisant, en parall`ele, le CPU pour la construction d’une hi´erarchie de volumes englobants (BVH) et le GPU pour r´ealiser un lanc´e de rayon sur la BVH d’abord, puis sur les fonctions potentiel d’int´erˆet ensuite. Le r´esultat de ce travail m’a confort´e dans l’id´ee qu’effectivement, l’utilisation des fonctions potentiel `a support compact coupl´ee aux ressources mat´eriel actuelles nous permet d’arriver `a un rendu vraiment efficace (figure 5.5). Revenons-en `a la mod´elisation. La solution propos´ee par Marie-Paule Cani et Adrien Bernhardt ´etait de reprendre l’id´ee (manuelle) propos´ee par Pasko et al. [PPK05] sur des fonctions potentiel `a support global et de l’adapter aux primitives de convolution avec un usage automatique. Nous voil`a donc repartis `a travailler au niveau mod`ele en s’attaquant `a l’un des verrous important : le contrˆole pr´ecis et automatique de la taille et de la localisation du m´elange lors des compositions.

5.5 Vers une nouvelle g´en´eration d’op´erateurs de composition

Pasko et al. [PPK05] d´efinit un op´erateur de composition, contrˆol´e par un param`etre. L’´el´egance de cet op´erateur est de produire un m´elange dont la taille est nulle quand le param`etre vaut 0 - il produit ainsi une union propre - et un m´elange de plus en plus large quand le param`etre grandit, jusqu’`a une taille maximale atteinte quand le param`etre vaut 1. Lors de l’utilisation de cet op´erateur pour composer deux fonctions potentiel `a support global, il faut positionner une fonction potentiel `a support compact (variant de 0 `a son support jusqu’`a 1 en son centre), dans chaque zone o`u le m´elange est d´esir´e. La/les fonction(s) potentiel `a support compact d´efinissent directement la valeur du param`etre de l’op´erateur de composition et le r´esultat escompt´e est ainsi obtenu : m´elange dans les zones d´elimit´ees par les fonctions potentiel `a support compact et union propre ailleurs.

(a) (b) (c) (d)

Fig.5.6 – (a) A gauche un m´elange classique et `a droite l’effet obtenu avec le nouvel op´erateur de Bernhardt et al. [BBCW10]. L’op´erateur de Bernhardt et al. [BBCW10] interpole l’op´erateur d’union propre illustr´e en (b) et l’op´erateur de m´elange de Barthe et al. [BDS+03] illustr´e en (c) pour donner l’op´erateur illustr´e en (d) quand le param`etre d’interpolation vaut approxima-tivement 1/2.

Il y a deux contributions importantes dans les travaux d’Adrien Bernhardt [BBCW10] (sec-tion 7.3.4). La premi`ere est la cr´ea(sec-tion d’un op´erateur avec les mˆemes propri´et´es que celui de Pasko et al. [PPK05], mais adapt´e aux fonctions potentiel `a support compact. La deuxi`eme est la g´en´eration automatique des fonctions potentiel localisant le m´elange, dans la proposi-tion d’Adrien, uniquement au niveau de l’intersecproposi-tion des parties de l’objet qui sont assembl´ees (figure 5.6(a)).

Les op´erateurs que nous avons propos´es sont construits `a partir de ceux qui ont ´et´e pr´esent´es dans [PASS95] et [BDS+

03]. Notre solution est bas´ee sur l’interpolation entre un op´erateur d’union propre (figure 5.6(b)) et un op´erateur de m´elange (figure 5.6(c)). Le param`etre d’inter-polation est la valeur de la fonction potentiel de localisation du m´elange. Nous n’avons pas utilis´e l’op´erateur d’union propre que j’avais propos´e dans [BWG04] car il est bien trop coˆuteux en cal-culs. La fonction potentiel localisant le m´elange est construite `a partir d’un champ de distance autour des poly-lignes d’intersection des surfaces des fonctions potentiel qui sont compos´ees. Cette poly-ligne est extraite avec un algorithme de “marching face” [LY03]. Les faces sont issues de la polygonisation des surfaces compos´ees ou d’un “marching cubes” appliqu´e `a des voxels situ´es autour de l’intersection. Ces voxels sont calcul´es en utilisant les fonctions d’inclusion des ´equations des fonctions potentiel compos´ees [Duf92, Sny92, FSSV06].

Fig. 5.7 – Exemples d’objets r´ealis´es avec un logiciel de mod´elisation par esquisses utilisant les op´erateurs de composition de Bernhardt et al. [BBCW10].

Fin septembre 2009, nous disposions donc de cet outil qui est un premier pas vers une nouvelle g´en´eration d’op´erateurs de composition. Ainsi, un op´erateur ne se contente plus de r´ealiser une union propre ou un m´elange. Il int`egre les deux fonctionnalit´es et permet de passer de fa¸con continue de l’une `a l’autre. D’un point de vue pratique, ceci permet d’´eviter le m´elange `

a distance qui fait que deux primitives suffisamment proches vont commencer `a se m´elanger alors qu’elles ne se touchent pas (figure 5.6(a)). Ceci permet aussi de localiser le m´elange dans les zones d’intersection seulement et enfin, il est possible de choisir la taille du m´elange en fonction du niveau de d´etail local des surfaces [BBCW10]. Tout ceci de fa¸con automatique et transparente pour l’utilisateur. La figure 5.7 montre quelques objets r´ealis´es avec un logiciel de mod´elisation par esquisses int´egrant ce nouvel op´erateur. Les principales limitations de ce nouvel op´erateur sont les distorsions dans la fonction potentiel r´esultante (figures 5.6(b) et (d)) et la difficult´e de passer `a l’´echelle sur des objets tr`es complexes int´egrant beaucoup de compositions `a diff´erentes r´esolutions (comme un arbre par exemple) `a cause de l’extraction de la poly-ligne localisant le m´elange.

Nous avons ainsi enchaˆın´e avec une id´ee qui avait ´et´e juste ´evoqu´ee en quelques lignes par Ro-ckwood en 1989 [Roc89] : contrˆoler l’interpolation entre l’op´erateur d’union propre et le m´elange non plus avec une fonction potentiel, mais avec l’angle des gradients des fonctions potentiel com-pos´ees [GBC+

11] (section 7.3.5). Ce nouveau projet a ´et´e men´e par Olivier Gourmel, un ´etudiant en d´ebut de troisi`eme ann´ee de th`ese sous la direction de Mathias Paulin. Notre objectif est

d’ar-5.5. Vers une nouvelle g´en´eration d’op´erateurs de composition

river `a traiter automatiquement et sans utiliser de structure compl´ementaire les probl`emes que nous avons r´esolus dans [BBCW10] (figures 5.8(b) et (c)), ainsi que d’´eviter les gonflements ind´esirables (figures 5.8(a)) et conserver la topologie lors du m´elange (figures 5.8(d)).

0 π/4 0 π/2 π θ 0 π/4 0 π/2 π θ (a) (b) (c) (d) (e) (f)

Fig.5.8 – Illustration des probl`emes de m´elange r´esolus par notre op´erateur d´ependant de l’angle entre les gradients des fonctions potentiel compos´ees [GBC+11]. Ligne du haut, un m´elange standard et ligne du bas notre nouvel op´erateur. (a) Le gonflement ind´esirable, (b) le voilage des d´etails, (c) le m´elange `a distance et (d) la modification de la topologie. (e) Probl`emes (a,c,d) illustr´es sur le mˆeme objet et (f), trac´es des contrˆoleurs permettant d’obtenir ces diff´erents r´esultats avec notre op´erateur.

L’utilisation des gradients dans la d´efinition de l’op´erateur de composition introduit une contrainte suppl´ementaire sur sa cr´eation : `a chaque composition, la continuit´e de la nouvelle fonction potentiel diminuera d’un degr´e au moins. Ainsi, si notre op´erateur est de continuit´e G1

, apr`es une composition, la fonction potentiel r´esultante sera de continuit´e G1 au mieux. Si on applique une nouvelle composition au niveau de ce m´elange, la fonction potentiel r´esultante sera C0

au mieux et si on r´eit`ere, on obtiendra une surface discontinue. Il nous faut donc pr´evoir des op´erateurs de composition `a la continuit´e suffisamment ´elev´ee. Pour ne pas faire d’hypoth`ese sur le nombre maximum de m´elanges se chevauchant, nous proposons des op´erateurs de classe C.

Une autre innovation que nous proposons est de profiter de l’utilisation de fonctions poten-tiel `a support compact pour stocker les op´erateurs de composition dans des textures sur GPU afin de ramener leur coˆut d’´evaluation `a un simple acc`es texture, quelle que soit la complexit´e des ´equations utilis´ees pour les d´efinir. Ceci est bien plus utile qu’il n’y paraˆıt. En effet, nous levons ainsi une contrainte tr`es forte qui ´etait de proposer des ´equations satisfaisant au mieux les contraintes qui ´etaient pos´ees sur les op´erateurs tout en conservant un coˆut d’´evaluation suffi-samment faible. Maintenant, nous pouvons choisir des fonctions arbitrairement complexes, mˆeme d´efinies par des ´equations r´esolues num´eriquement si n´ecessaire. Il devient possible de d´efinir de fa¸con pr´ecise la forme souhait´ee pour les op´erateurs. Nous avons d´etermin´e le trac´e des op´erateurs illustr´es figure 5.9 en utilisant les connaissances th´eoriques pr´esent´ees dans [BDS+

03, BWG04] et nous les avons d´efinis `a l’aide des fonctions de classe C pr´esent´ees dans [GBC+

11].

Plutˆot que d’interpoler entre deux op´erateurs (union propre et m´elange) comme nous l’avons fait dans [BBCW10], nous proposons un op´erateur contrˆol´e directement par un angle d’ouverture (dans l’esprit de [BDS+

03]). Quand cet angle vaut π/4, nous d´efinissons un op´erateur d’union propre (figure 5.9(a)), et quand l’angle diminue, un m´elange de plus en plus large est cr´e´e (figure 5.9(b)) jusqu’`a atteindre un m´elange maximal quand l’angle est ´egal `a 0 (figure 5.9(c)). Avec ce principe, nous proposons une construction g´en´erique des op´erateurs permettant de

(a) (b) (c) (d) Fig. 5.9 – Illustration de notre op´erateur contrˆol´e par l’angle des gradients [GBC+

11] avec (a) un angle d’ouverture de π/4, (b) un angle de π/8 et (c) un angle ´egal `a 0. (d) Illustration de l’op´erateur de gonflement au contact.

d´efinir simplement la forme de l’op´erateur dans la zone de d´eformation. Ainsi, nous avons cr´e´e un op´erateur n’introduisant qu’un minimum de distorsions dans la fonction potentiel r´esultant de la composition et de variation de courbure sur la surface dans la zone de m´elange. Nous avons aussi cr´e´e un op´erateur permettant de r´ealiser du gonflement au contact pour simuler l’´ecrasement sur des objets mous lorsqu’ils rentrent en contact, comme par exemple deux doigts de la main (figures 5.9(d), 5.11(b) et (c)).

Revenons-en au cœur th´eorique de notre contribution : le contrˆole automatique de l’ouverture de l’op´erateur par l’angle entre les gradients des fonctions potentiel compos´ees. Nous introduisons une fonction h : [0, π] → [0, π/4] appel´ee “contrˆoleur” qui prend en entr´ee l’angle entre les gradients et retourne en sortie l’angle d’ouverture de l’op´erateur. Par exemple, un contrˆoleur constant h = 0 (figure 5.8(f)-haut) produit un m´elange maximal quel que soit l’angle entre les gradients, c’est `a dire un m´elange classique (figure 5.8-haut). Un contrˆoleur comme celui pr´esent´e figure 5.8(f)-bas permet quant `a lui de r´egler tous les probl`emes que nous avons soulev´es (figure 5.8-bas). Nous proposons aussi un contrˆoleur sp´ecifique pour la mod´elisation de formes organiques (figure 5.10) qui permet de r´ealiser une composition dissym´etrique plus naturelle. Ainsi la cuisse du chameau, comme sa queue (figures 5.10(c) et (d)) se m´elangent sur le dessus, mais forment une union dans les zones de pincement.

0 π/4

0 π/2 π

h

(a) (b) (c) (d) (e)

Fig. 5.10 – Illustration du r´esultat obtenu en composant les fonctions potentiel avec notre op´erateur associ´e au contrˆoleur organique. (a) Le r´esultat avec le contrˆoleur de la figure 5.8(f)-bas et (b) la mˆeme composition avec le contrˆoleur organique. (c,d) Utilisation de notre contrˆoleur organique en mod´elisation de formes complexes et (e) trac´e du contrˆoleur organique.

Pour finir, nous avons aussi propos´e un contrˆoleur sp´ecifique `a l’utilisation de l’op´erateur d’´ecrasement au contact (figures 5.9(d), 5.11(b) et (c)), ce qui nous a permis de produire les r´esultats pr´esent´es figure 5.11. On peut noter qu’en animation, il peut ˆetre int´eressant de faire varier le contrˆoleur pour que, par exemple, des primitives ne se m´elangent pas tant qu’elles ne

Documents relatifs