|
AISIM 3
Rendu
|
Dans le cadre de la simulation en temps-reel de l'aspect
de la surface du foie, Raphael Heiss avait developpe en 1998 a iMAGIS
un programme permettant d'afficher en temps-reel 3 elements de l'aspect:
- une couche de texture figurant le grain de la peau du foie,
- une couche memorisant les actions des instruments sur le foie (type dessin
interactif),
- une couche simulant les reflets de la source lumineuse.
En 1999, nous avons poursuivis les travaux dans 2 directions:
- aspects evolutifs: contusions, blanchiement et cauterisation
(il s'agit de perfectionner la couche 2)
- texture sans distortion du grain de la peau
(amelioration de la couche 1)
Dans les 3 cas les phenomenes a representer sont complexes, petits, evolutifs,
et en meme temps mineurs: il ne faut pas leur consacrer trop de ressource,
i.e. trop de polygones et trop de calculs physiques.
Nous avons suivi une approche 'sprites' + automate pour faire des textures
animees:
a la maniere des `chenillards' a base de sprites des premiers jeux videos,
on va utiliser des sprites texturels pour faire evoluer dans le temps
ou dans l'espace des motifs longilignes, en ne remettant a jour que
les portions de la texture 2 qui evoluent. Ainsi on represente marques et
gouttes de sang avec zero polygone supplementaire et un minimum de
transferts graphiques.
L'algorithmique est donc classique; la partie delicate consiste la physique
de la tete de la goutte de sang: on suit ses coordonnees dans le parametrage
uv de la surface, et on maintient sa vitesse dans le repere 3D.
La physique de base faisant intervenir gravite et normale locale suppose de
savoir en quelle face elle se trouve, ce qu'on encode par une table f(u,v)
fabriquee a l'aide du hardware graphique. On utilise le Jacobien xyz-> uv
pour savoir comment 'tordre' le dessin dans la texture pour qu'il apparaisse
correctement a l'ecran malgre le mapping.
Texturer les surfaces sans distortion ni discontinuite est un probleme dur
classique de synthese d'images.
Dans un cadre plus general que celui pose par AISIM, mais avec des retombees
utiles,
nous publions a Siggraph'99 un papier permettant de mapper des textures
sur n'importe quel objet sans distortion, discontinuite ni repetitivite
( "Pattern-Based Texturing Revisited",
http://www-imagis.imag.fr/TEXTURES/
).
La methode consiste a eviter toute parametrisation globale,
en ayant recours a des series de parametrisations locales (sur des domaines
en triangles supposes equilateraux) et en reportant au contenu des textures
les contraintes de continuite C1 aux bords des domaines.
- on choisit des conditions aux bords possibles pour les motifs
- on synthetise les echantillons de texture triangulaire necessaire
(textures de Worley dans le cadre du foie)
en fonction de toutes les possibilites de contrainte (en general 4)
- on construit un 'maillage de texture' fait de triangles quasi-equilateraux
de meme taille (donnee par l'utilisateur)
- on plaque ces domaines triangulaires sur le maillage en reliant les noeuds
par des geodesiques, puis en fabriquant un parametrage local a partir
de la distance geodesique des sommets du maillage aux bords du domaine
- le resultat peut etre represente sous la forme de maillage classique
xyz uv num_tex et donc represente en temps-reel avec les visualiseurs
ordinaires.