Visualisation Scientifique 3D



Documents pareils
FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Fonctions de plusieurs variables

3 Approximation de solutions d équations

Introduction au maillage pour le calcul scientifique

Cours d Analyse. Fonctions de plusieurs variables

Chapitre 5 : Flot maximal dans un graphe

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Programmation linéaire

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

Résolution d équations non linéaires

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Les algorithmes de base du graphisme

Fonctions de deux variables. Mai 2011

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Cours de Mécanique du point matériel

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Calcul intégral élémentaire en plusieurs variables

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Fonctions de plusieurs variables

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Correction du Baccalauréat S Amérique du Nord mai 2007

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

F411 - Courbes Paramétrées, Polaires

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Programmation linéaire

Chapitre 0 Introduction à la cinématique

Image d un intervalle par une fonction continue

Chapitre 2 Le problème de l unicité des solutions

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

I. Polynômes de Tchebychev

Optimisation, traitement d image et éclipse de Soleil

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Corrigé du baccalauréat S Pondichéry 12 avril 2007

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Deux disques dans un carré

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Corrigé du baccalauréat S Asie 21 juin 2010

OM 1 Outils mathématiques : fonction de plusieurs variables

Algorithmes pour la planification de mouvements en robotique non-holonome

Différentiabilité ; Fonctions de plusieurs variables réelles

Équations non linéaires

Cours3. Applications continues et homéomorphismes. 1 Rappel sur les images réciproques

Exercices - Polynômes : corrigé. Opérations sur les polynômes

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Approximations variationelles des EDP Notes du Cours de M2

Chapitre 1 Cinématique du point matériel

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

Résolution de systèmes linéaires par des méthodes directes

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Angles orientés et trigonométrie

CHAPITRE 10. Jacobien, changement de coordonnées.

Angles orientés et fonctions circulaires ( En première S )

Fonctions de plusieurs variables. Sébastien Tordeux

Modélisation et Simulation

Représentation géométrique d un nombre complexe

PHYSIQUE 2 - Épreuve écrite

Intégrales doubles et triples - M

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Sillage Météo. Notion de sillage

point On obtient ainsi le ou les points d inter- entre deux objets».

modélisation solide et dessin technique

Continuité et dérivabilité d une fonction

Cours d analyse numérique SMI-S4

Cours IV Mise en orbite

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

NOMBRES COMPLEXES. Exercice 1 :

Calcul fonctionnel holomorphe dans les algèbres de Banach

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Exemple d application en CFD : Coefficient de traînée d un cylindre

TSTI 2D CH X : Exemples de lois à densité 1

Analyse en Composantes Principales

1 Complément sur la projection du nuage des individus

Trépier avec règle, ressort à boudin, chronomètre, 5 masses de 50 g.

COMPTE-RENDU «MATHS EN JEANS» LYCEE OZENNE Groupe 1 : Comment faire une carte juste de la Terre?

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Introduction à l analyse numérique : exemple du cloud computing

Rupture et plasticité

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Statistiques Descriptives à une dimension

Traitement bas-niveau

T.P. FLUENT. Cours Mécanique des Fluides. 24 février 2006 NAZIH MARZOUQY

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Figure 3.1- Lancement du Gambit

Calcul différentiel. Chapitre Différentiabilité

Oscillations libres des systèmes à deux degrés de liberté

Transcription:

Cours ENSIMAG Visualisation Scientifique 3D Stefanie Hahmann Laboratoire LMC-IMAG e-mail: hahmann@imagfr 1

<<Imagination or visualization and in particular the use of diagrams has a crutial part to play in scientific investigations>> René Descartes (1637) 2

Contenue du cours 1 La boucle de la découverte scientifique 11 Flux d information pour la ViSc 12 Exemple: Simulation Numérique 13 Imagerie médiacle 14 Modélisation de scattered data 15 Besoin en puissance de calcul et de réseau 2 Les données 21 Exemple 22 Classification 23 Structures de données 3 Modélisation de scattered data 31 Méthodes de base pour l interpolation de SD 32 Modélisation de SD du type surface-sur-une-surface 4 Visualisation de données surface-sur-une-surface 5 Visualisation de données volumiques 51 Méthodes de décomposition du domaine 52 Méthodes de slicing 53 Iso-surfaces - Contouring 54 Volume rendering - Ray-casting 6 Visualisation de champs de vecteurs et de tenseurs 61 Méthodes directes 62 Méthodes topologiques 63 LIC 7 Visualisation multirésolution de données scientifiques 71 URL s Bibliographie 3

Qu est-ce que devrait être pour vous la ViSc? La Visualisation Scientifique - est l utilisation d images crées par ordinateur afin de comprendre les données d origine de mesures ou de simulation - est un important nouveau domaine de recherche qui est partagé par différentes sciences de l ingénieur et d informatique (1conférence en 1991, 1revue international en 1996) - fournit les outils nécessaires pour extraire les informations souhaitées des données et pour en gagner des conaissances 1 LA BOUCLE DE LA DÉCOUVERTE SCIENTIFIQUE Comment la ViSc peut être utilisée pour améliorer le processus de la découverte scientifique? Pour introduire ce cours, on va d abord parler un peu de ce qu est la boucle de la découverte scientifique Le processus classique du calcul scientifique (modélisation mathématique du réel physique, simulation numérique, visualisation) y est inclus Cela va être expliqué avec 3 exemples prototypes qui illustrent le context scientifique de la visualisation et les problèmes qui se posent Ce sont 3 exemples dans lesquels se retrouvent la plupart des techniques et algorithmes dont on va faire connaissance dans ce cours L importance particulière est portée sur des applications des modèles physiques en 3D Cela inclut la classes de problèmes les plus intérssants, cad la modélisation et la compréhension de phénomènes de notre monde réel 4

Mots cléfs Interaction: on va dans ce chapitre donner une introduction à la ViSc interactive On est le plus souvent intéressé au cas où l utilisateur est en interaction avec le modèle mathématique et dirige la simulation dans l espoir de gagner new insight Comprendre l intérieure Modification ou amélioration du modèle L interface primeur pour l interaction consiste en l image visuelle et en conséquent l input basé sur la perception et l interprétation des images par l utilisateur EVALUATION MODELE OBSER DU GRAPHE Modèle: Le modèle ici peut soit être un modèle mathématique d un phénomène physique que l on veut simuler, donc un modèle abstrait; soit être un modèle physique sur lequel on veut faire des observations, lequel on voudrait bien construire ou améliorer MODELE La boucle de base consiste donc en un modèle à partir duquel on obtient des données (soit un très grand nombre, soit très compliqué, ou les deux) qui eux seules nous disent rien 5

OBSER Ici intervient donc la visualisation qui nous crée une image On comprend mieux ce qui se passe On peut comprendre l ensemble de données numériques obtenues auparavant On fait l observation et en conséquent on fait peut-être des modifications/améliorations au modèle On comprend donc la nécessité d une interface (en 2 directions) qui est la phase intermédiaire entre le modèle et l observation, dont on extrait des informations qui forment l image C est la phase que l on appelle évaluation du graphe Très souvent on aura à calculer le graphe d une fonction qui ensuite va être visualisée d une manière appropriée à l écran d ordinateur Nous n allons pas nous occuper, comment une image apparaît réellement sur l écran (avec les projections 3D 2D, la perspective, les surfaces et lignes cachées avec l ilumination, l ombrage, le rendu réaliste, etc) C est le contenu d un cours de base sur l infographie Notre problème est la visualisation d un ensemble de données de taille et de type très différent en 3D Il n y a pas de technique qui s applique dans tous les cas Elle dépend complètement du modèle du phénomène à étudier et des informations que l on souhaite à extraire des ensembles de données Pex: Comment visualiser de la pluie sur une carte? ou comment visualiser qu il y avait 52 l/m 2 de pluie en Au- 6

vergne à midi? - dessiner un nuage et 52 l/m 2 sur la carte, - attribuer une couleur à cette endroit en fonction des l/m 2 tombés, - tracer des histogrammes, - faire une animation au cours de la journée Le problème n est donc pas comment tracer sur l écran un nuage de pluie mais l algorithme ou la technique qui à partir d un fichier de données enrégistrées nous finalement dit qu il faudra tracer un nuage de pluie au Puy de Dôme sur la carte de France Et pour réellement faire de la ViSc il faut finalement quand même savoir calculer une image par ordinateur Pour la plus grande partie, les techniques de la ViSc reviennent d une manière ou d une autre à calculer une fonction et à évaluer son graphe à partir d un ensemble de données souvent discrètes 11 FLUX D INFORMATION POUR LA VISC MODELISATION MATHEMATIQUE CALCUL IMAGES DONNEES MODELE MATHEMATIQUE DONNEES EVALUATION DU GRAPHE CALCUL 7

12 EXEMPLE: SIMULATION NUMERIQUE Design d une aile d avion Simulation numerique des equations Navier-Stokes Image Donnees Champs de vecteurs donnees discretes Calcul des traces de particules Modélisation mathématique d un phénomène physique - mettre en équation les lois de la physique: ici de la dynamique des fluides équations de Navier-Stokes (EDP) - mettre en relation le vecteur de velocité V = (u, v, w), le scalaire de la pression p, une constante de densité du fluide ρ, une constante de viscosité dynamique µ et le vecteur des forces extérieures F = (x, y, z) [ V ρ t + ( V ) V ] = p + µ 2 V + F 8

Ensemble avec une équation de continuité div V = 0 Il s agit de resoudre ces équations pour V et p en fonction du temps t et les coordonnées de l espace (x, y, z) Il faut d abord fixer les conditions de bord sur la surface S de l aile Elle sont très importantes Dans ce cas elles doivent correspondre à la condition que la vitesse du fluide doit être égale à la vitesse de l avion A à sa surface et la vitesse du fluide loins de l avion doit approximer les condition d un flux libre ( d A dt (t) vitesse de l avion) V(x, y, z, t) = d A (t) = 0 pour (x, y, z) S dt Il faut une description mathématique du bord, qui est dans beaucoup de cas un objet géométrique Ici: surface de l aile On utilise des surfaces de forme libre, pex les surfaces B-spline trimmées: S(u, v) = b ij N n i (u)n m j (v) 9

Résolution de l EDP par des méthodes numériques (en général il n existe pas de solutions explicites) Elles fournissent les valeurs de V et p en quelques points discrets: (a) par différences finies: utiliser une grille uniforme de l espace L EDP est remplacée par une approximation où les dérivées partielles sont approximées par des différences u x 1 2 (u i+1,j,k u i 1,j,k ) u y 1 2 (u i,j+1,k u i,j 1,k ) u z 1 2 (u i,j,k+1 u i,j,k 1 ) 2 u = u xx + u yy + u zz (u i+1,j,k 2u i,j,k + u i 1,j,k ) + ( ) + ( ) avec u i,j,k = u(x i, y j, z k ), (x i, y j, z k ) étant un point de la grille (b) par éléments finis La solution est supposée d être sous la forme d une combinaison linéaire de fonctions b i définies par morceaux sur une 10

décomposition de l espace et qui n ont qu un petit support (ie support local) u(x, y, z) = n a i b i (x, y, z) i=1 Calculer les coefficients a i en exigeant pex que ( ) satisfait l EDP en n points discrets système d équations linéaires creux: en 3D 100 3 équations et 100 3 inconnues méthodes itératives (gradient conjugué) Champs de vecteurs, données discrètes Evaluation du graphe préparer les données (champs de vecteurs 3D) u(x, y, z) V(x, y, z) = v(x, y, z), (x, y, z) D, w(x, y, z) connues sur une grille (x i, y j, z k ), i = 1,, N x, j = 1,, N y, k = 1,, N z, pour la visualisation: approximation, interpolation, analyse multi-résolution Choix de la méthode de visualisation! hedgehog (hérisson): tracer une collection de flash/vecteurs en les points de la grille C est une méthode très limitée pour apprendre qc d un champs en 3D Animation des particules suivant les lignes de courant : courbes 3D tangentes au champs V (streamlines) P(t) = 11 x(t) y(t) z(t) ( )

ie P (t) = (x (t), y (t), z (t)) T = V(x(t), y(t), z(t)) = V(P(t)) ie resoudre numériquement une EDO (Runge Kutta) déformation du type FFD Affichage à l écran - display La phase d évaluation du graphe produit en général des primitives graphiques qui sont ensuite affichés par un grand nombre de techniques disponible à l écran (voir techniques en infographie, synthèse d images) [FolvDam??] ici: Animation d une trace de particules autour de l aile Transformation et rendu de la trace des particules et des bord polygonaux (triangles, quadrilatères) de la surface de l aile les poygones passent par une viewing pipeline : coorodnnées 3D du domaine de modélisation coorodnnées 2D de l écran colorage des pixels à l intérieur du polygone d après une méthode d illumination et d ombrage, calcul des surfaces cachées, clipping des primitives 13 EXEMPLE 2: IMAGERIE MEDICALE Rayonnement d une tumeur (radiothérapie) 12

Le médcin doit positionner l appareil pour qu il cible la tumeur et ne détruit pas trop de cellules seines autour Le médcin doit avoir connaissance de l endroit exacte d une tumeur Les méthodes de la visualisation volumique permettent un regard à l intérieur non-chirurgical pour trouver l endroit à traiter Une simulation interactive du traitement permet de fixer les paramètres du traitement (direction, focus, intensité, etc) pour que l exposition du patient au rayonnement soit minimisée Assemblage et/ou Lissage des donnees MRI Image Donnees Coefficients de la fonction a trois variables Calcul des iso-surfaces et rendu du volume Modélisation mathématique Techniques fournssant des données pour l imagerie médicale: PET positron emission tomography MRI magnetic resonance imaging (IRM Imagerie par résonance magnétique) Ultra-son Les données: (x i, y j, z k ; F ijk ), i = 1,, N x V ijk = (x i, y j, z k ) j = 1,, N y k = 1,, N z, positions des cites de données dans l espace 3D 13

Déterminer une fonction trivariate F (x, y, z) telle que F (V ijk ) = F ijk (interpolation), ou F (V ijk ) F ijk (approximation) V ijk se trouvent sur une grille cube (grille régulière) F trilinéaire par morceaux sur chaque voxel de la grille (ou produit tensoriel triple de splines cubiques plus lisse) V ijk non-structurés Méthodes d interpolation de scattered data Evaluation du graphe (a) Calcul d iso-surfaces (surfaces d iso-valeurs) de la fonction modélisant F (x, y, z) S α = {(x, y, z) F (x, y, z) = α} C est la version 3D des lignes de contour, pex les lignes de niveau de pression constante sur une carte météo - S α se compose souvent en plusieurs morceaux de surface - S α est calculée approximativement et représentée par un ensemble de triangles: Algorithme Marchign cubes évaluer F en x i, y j, z k F ijk > α ou < α calculer l intersection de S α avec les arêtes en supposant qu elle ne varie que linéairement sur les arêtes polygones, les trianguler iso-surface triangulée (tri-linéaire par morceaux) 14

en sortie de l algorithme: Liste de triangles surfaciques Affiachage à l écran pour visualiser l iso-surface en 3D (b) Rendu volumique (volume rendering) Technique permettant de regarder le volume en une seule image, ressemblant aux radiographiques, pour regarder à l intérieur d un objet Algorithme: Ray casting volume rendering Lancer un rayon à partir de votre point de vue à travers d un pixel de l écran dans le volume Le rayon rentre dans le volume, traverse plusieurs voxel et y calcule des valeurs le long du rayon Une fonction de transfert les compose pour attribuer une couleur à ce pixel à l écran Répétition pour chaque pixel 15

très efficace très cher en temps de calcul calcul en temps réel souhaitable 14 EXEMPLE 3: MODELISATION DE SCATTERED DATA Surveillance de concentration de CO 2 dans l air - données mesurées en intervalles irrégulières dans une période de temps - préparer les données pour éventuellement pouvoir détecter des comportement globaux - visualiser des fonctions sur la terre Calcul d une approximation spherique Image Donnees Modele mathematique Parametres, Donnees Calcul du graphe de l approximation spherique 16

Modélisation mathématique la terre S = {(x, y, z) x 2 + y 2 + z 2 = 1} sphère unité données: P i S et valeurs F i en les P i, i = 1,, N on cherche une fonction F : S IR qui interpole ou approxime les valeurs sur la sphère S: F (P i ) = F i surface-on-surface Evaluation du graphe calculer le graphe tel qu il est représentée sur l image précédente: fonction à valeur réelle sur une spère prendre chaque pixel dans l espace image, déterminer ou il se trouve sur la spère, et évaluer la fonction en ce point pour lui associer une couleur! trop cher en temps de calcul! calculer des approximations polygonales des courbes de contour C α = {(x, y, z) F (x, y, z) = α} Représenter le domaine S par des triangles et supposer que F est très simple (ex linéaire) sur les arêtes du triangle les courbes de contour sont polygonales! très utile! mais certains propriétés de la fonction F peuvent rester invisibles: cercles cocentriques, etc tracer la surface F semi-transparent avec différentes couleurs + lignes de contour sur la terre en arrière-plan Extension: suface-sur-une-surface arbitraire 17

15 BESOIN EN PUISSANCE DE CALCUL ET DE RESEAU Exemple: Navier-Stokes (Simulation aile d avion) Discretisation + Resolution du systeme ( 4 N K ) u Image, Data 3 ( S S ) Bytes x y Champs de vecteurs Calcul des traces de particules ( 3 N ) fp# ( 3 R P ) v Exemple: Navier-Stokes: N N x = N y = N z = 100 N = 10 6 K itérations pour convergence K = 10 u opérations par itération u = 25f lop 4 valeurs non-nulles par équation 4 ( 3 N ) 32 bits R # pas du EDO-solver R = 100 P # patches P = 100 v # opérations par pas v = 20flop } ( 3 P R ) 32 bits } 1G flop 96 M bits 06M flop 096 M bits V # sommets de la V = 10000 triangulation surfacique 2V # triangles l # op: convertir triang en lignes l = 500ops p # op: p = 1000ops t # op: transf + clipping t = 20flop 74M ops 18

S x taille de l image S x = 1000 S y S y = 1000 3 RGB couleur 8 bits = 1 Byte 24 Mbits 1 G flops 24 M bits (3 MB) 96 M bits (12 MB) 06 M flops 19

2 LES DONNÉES 21 EXEMPLES WELL LOG DATA (Courtesy DLane & DKrinsel) Location Mineral 550 550 100 100 000 1000 110 100 Géophysique: collectionner des mesures de différentes profondeurs à certaines positions fixes positions (x i, y i ) surface de la terre la profondeur et le nombre de mesures peuvent varier d une position à l autre Données: (x i, y i, z ij ; M ij ) i = 1,, N, i j = 1,, N i BIG SUR (Courtesy RFranke) Location Temperature 2356 4929 6724 3780 5478 4342 273 692 102 Track Data: (x ij, y ij ; T ij ) i, j = 1,, N, M 20

SCANNEUR MÉDICAL X Y Z Density i j k 0000 0000 0000 0000 0000 0000 0000 0016 Données: F ijk = F (x i, y j, z k ) i, j, k = 1,, N 0000 0015 1000 0000 Les sites des données se trouvent sur une grille cubique uniforme, ie équidistante dans chacune des 3 directions x, y, z Origine: MRI, PET, Ultra-son, 243 175 186 187 FLAMME Location Concentration 000 000 000 000 000 000 002 004 006 001 007 003 Données représentant des concentration de gaz dans un hautfourneau Pour chaque couche z k la flamme est scannée par un laser qui radialement détermine les positions et permet d effectuer les mesures de concentration r i = r min + i r Φ j = Φ min + j Φ r k = r min + k z (r i cos(φ j ), r i sin(φ j ), z k ; C ijk ) 21

AILE D AVION (Courtesy Nasa Ames) Location Pressure -1321-1283 -1168 385 385 385 61 66 75 0164 01 0067 Simulation numérique de la pression sur une aile d avion Données: (x ij, y ij, z ij ; P ij ), i = 1,, N u, j = 1,, N v, (x ij, y ij, z ij ) = W (u i, v j ), W (u, v) surface paramétrique de l aile VOITURE (Courtesy YNakajima, Nissan) Location 777 414 945-278 385 268 (133 234 045) (186 356 125) Simulation Numérique: Vélocité par Navier-Stokes Données: (x ijk, y ijk, z ijk ; (u ijk, v ijk, w ijk )) i = 1,, N x, j = 1,, N y, k = 1,, N z 22

CERVEAU Location Voltage 654 914 945 456-314 212 564 138 119 0033 0086 0310 Neurologie: Un électro-encéphalogramme (EEG) permet de mesurer l activité du cerveau à plusieurs endroits en même temps en plaçant ici 6 électrodes sur le crâne Données: (x i, y i, z i ; V ij ), i = 1,, N, j = 1,, 6 (x i, y i, z i ) crâne MÉTÉO - PLUIE Longitude Latitude Rainfall 43 19 34 21 35 59 43 19 34 23 36 13 45 09 36 23 36 13 146 236 146 Les stations de mesure sont arbitrairement distribuées dans le monde Les sites peuvent être considérées comme points random sur la sphère de rayon 1 Données: (x i, y i, z i ; R i ), i = 1,, N avec la restriction x 2 i + y2 i + z2 i = 1 On peut inclure cette restriction dans les données en les décrivant par angles de latitude Φ i et de longitude Ψ i (x i, y i, z i ) = (sinφ i cosψ i, sinφ i sinψ i, cosφ i ) 23

CLIMAT (Courtesy RCrawfis, NMax, LLNL) Longitude Latitude Wind V 43 19 34 43 19 34 44 20 57 23 36 13 23 45 36 23 36 13 (12 25 62) (26 29 37) (21 52 26) En 19 altitudes au dessus de chaque position la direction et la vitesse du vent sont mesurées Données: (Φ ij, Ψ ij, ϕ k ij ; (u ijk, v ijk, w ijk )), i = 1,, N, j = 1,, M, k = 1,, 19 Grille curviligne sphérique SON Location Decibel 2445 1031 1287 1356 5045 3560 356 567 2104 580 493 369 Le niveau du son est mesuré à différents endroits dans une salle Le but est de placer des appareils générant du son ainsi que des objets absorbant du son afin d obtenir une distribution optimale Données: (x i, y i, z i ; D i ), i = 1,, N 24

BOURSE (Courtesy E-KKoh) RO/4 EP F2GRW RTN 241 183 385 265 621 686 371 137 R0/4 - Juillet 1987 performance EP - Earnings pro Price Ratio F2GRW - Groth Potential RTN - October 1987 Performance Données: (x i, y i, z i, w i ), i = 1,, N RÉSERVOIR Location Density 4058 7756 3335 4569 1235 2782 135 259 Ensemble de cellules se composant en plusieurs faces Il peut y avoir des failles et des discontinuités F (P i ) peut être différent pour le même point P i mais pour différentes cellules 25

ÉLÉMENTS FINIS Location Temperature 219 953 692 119 231 997 887 789 Données: (x i, y i, z i ; T i ), i = 1,, N, Faces: F k = P 1,, P N, Cellules: C j = F 1,, F M 26

22 CLASSIFICATION Les exemples montrent bien avec quels types de données nous avons à faire en général Ils sont choisis de manière à être représentatifs pour beaucoup d autres applications Tous les ensembles de données ont 3 variables indépendantes et, soit une valeur dépendante scalaire, soit vectorielle (x i, y i, z i ; F i ) (x i, y i, z i ; (u i, v i, w i )) } 3 variables indép 1 variable dép scalaire ou vectorielle Les 3 variables indép représentent soit une position dans l espace, soit le temps et une position en 2D } (x i, y i, z i ) (t i, x i, y i ) 3 variables indép On distingue 2 catégories: 3 variable indép, non-contraintes: La position n est pas soumise à des contraintes Elle peut se trouver n importe où dans une région connexe d un espace 3D données volumiques 3 variables indép, contraintes: Les données indép sont restreintes à se trouver dans un sous-ensemble 2D de l espace 3D données surface-on-surface 27

221 Origine Simulation Mesures 222 Dimensions Domaine des sites de données 2-DIMENSIONNEL 28

3-DIMENSIONNEL n-dimensionnel Image du site de donnée: SCALAIRE Densité, température, concentration, pression, potentiel, altitude, décibel, VECTEUR vélocité (u(x, y, z), v(x, y, z), w(x, y, z)), gradient d un champ scalaire F (x, y, z) force, courent, F = ( F x, F y, F ) z,, 29

TENSEUR Gradient de vélocité (η ij ) = u x v x w x u y v y w y u z v z w z vitesse de torsion D = c(η ij + η ji ), vitesse de rotation W = k(η ij η ji ), tension, conductivité, moment d inertie, 23 STRUCURE DE DONNÉES 231 Vocabulaire DONNÉES irrégulières, scattered data, non-uniformément distribuées GRILLES, MAILLES (Grids & Meshes) structurés : uniforme régulière rectangulaire 30

grille cube curvilinéaire non-structurés : triangulaire irrégulaire hybride 31

CELLULES 2D 3D triangle quadrilatère polygone tetraèdre hexaèdre polyèdre 232 Géométrie - topologie Géométrie: Elle est donnée par des points avec une structure de données (tableau, liste connectée, ) Ils déterminent le positionnenemt dans l espace et la forme de l objet Toplogie: Elle consiste en des connections de points, arêtes, faces, etc, pour former une décomposition cellulaire de l objet Elle 32

fournit les relations d adjacence ou le voisinage entre sommets, arêtes faces, ou cellules La structure de données contient ces informations Exemple 1: Grille cartésienne Géométrie x i i = 1,, N x y j j = 1,, N y z k k = 1,, N z Topologie Exemple 2: Grille curviligne Géométrie x ijk i = 1,, N x y ijk j = 1,, N y z ijk k = 1,, N z Topologie Exemple 3: Grille triangulaire - triangulation Géométrie (x i, y i, z i ) i = 1,, N 33

Topologie Triangles Faces voisines V 1 V 2 V 3 F 1 F 2 F 3 1 2 3 7 2-1 1 3 4 3-1 1 4 3 7 5 4 2 4 7 5 5-1 3 3 5 7 4 3 6 3 6 5-1 5 7 2 6 3 6 1-1 se généralise aux grilles tetraédriques Polyèdres En E 3 un polyèdre est définit par un ensemble fini de polygones planes tel que chaque arête d un polygone est partagée avec exactement un autre polygone et aucun sous-ensemble de polygones a la même propriété Pex tetraèdre polygone non non 34

Triangulations surfaciques Les triangulations surfaciques sont des triangulations de points dans un espace 3-dimensionnel qui appartiennent à une surface (2-dimensionnelle) Une triangulation surfacique est une approximation d une surface par une surface plane par morceaux, chaque morceau étant un triangle La topologie de la surface sous-jacente peut être quelconque mais doit être 2-manifold Les situations suivantes sont interdites: point isolé non-manifold, arête commune à > 2 triangles, sommet non-appartenant, à l ensemble de points, arête isolée 35

Remarque: Ce qui est la triangulation surfacique pour la surface est la tetrédrisation pour les volumes 233 Structure de données B-rep Le B-rep permet de décrire autant les informations géométriques que topologiques définissant un objet polyédrique dans l espace 3D Cette structure de donnée est une représentation d un objet par ces bord, d où son nom: B-rep: Boundary representation Elle décrit en priorité la topologie de l objet sous form de graphe, sur lequel on mémorise les informations géométriques On distingue 2 classes de structures ici: Edge List (EL) Winged Edge List (Arête Ailée) Structure de données EL Elle marche pour tous les objets polyédriques 36

typedef struct successeur successeur; struct successeur{ int numero; successeur *suiv; } typedef struct sommet sommet; struct sommet { double x, y, z; char flag; successeur *succ; } sommet *tableau; tableau = (sommet*) malloc (N*sizeof (sommet)); Exemple: - coordonnées du 3ème sommet: tableau[3]x tableau[3]y tableau[3]z - indice du 1 er voisin du 5ème sommet: tableau[5]succ numero 37

fichier de données pour des triangulations: Fichier classique : x 1 y 1 z 1 x n y n z n ind i1 ind i2 ind i3 coordonnees des n sommets indices des sommets des m triangles les indices des sommets d un triangles doivent être triés dans l ordre trigonométrique Fichier EL : N nombre de sommets i 1 i 2 i n1 k 1 k 2 k nn indices des n i voisins du sommet i x 1 y 1 z 1 x N y N z N coordonnees 3D des N sommets 38

Exemple: Fichier classique Fichier EL 01 15 35 9 9 2 6 8 9 2 6 8 78 43 18 1 9 4 3 6 8 6 7 2 4 5 7 6 2 3 6 9 5 3 2 6 3 7 4 7 3 1 2 3 7 8 1 2 3 7 8 9 4 2 1 6 7 01 15 35 liste des coord des points liste des triangles 78 43 18 liste des sommets voisins à chaque sommet (topologie) liste des coord des points (géométrie 39

Opérations : - ajouter sommet - supprimer sommet - marquer points du bord - construire la liste des triangles - tests si structure est correcte - Commentaires : - structure simple - pas la plus rapide pour les opérations à effectuer - peu de place mémoire nécessaire Structure de données DCEL (Doubly Connected Edge List) Structure du type arête ailée, basée sur une représentation par arêtes, faces et sommets, axée sur la déscription des arêtes - arête A est représentée par deux sommets extrémeaux S 1 et S 2 définissant son orientation S 1 S 2 - arête A pointe sur deux faces adjacentes: F 1 à sa gauche, F 2 à sa droite (vue de l extérieure) - arête A pointe sur deux arêtes obtenues l une par rotation de A autpour de S 1 sur F 1 arête A 1 ; et rotation (de A) autour de S 2 sur F 2 arête A 2 Pour faciliter la manipulation des objets polyédriques suivant les différents éléments qui le composent, il est nécessaire de construire 40

une passerelle entre une face et une arête adjacente (n importe laquelle) et un sommet et une arête (n importe laquelle) On rajoute alors au niveau d une face un lien à une de ces arêtes et au niveau d un sommet une arête dont il est extrémité Ces liens ne sont pas uniques Exemple: DCEL Il faut commencer par écrire toutes les arêtes et toutes les faces avant de pouvoir remplir le tableau des arêtes No Face Arête Arêtes Faces?? V 1, V 2, S 1 S 2 A 1 A 2 F 1 F 2 1 1 3 2 1 2 6 2 1 2 6 9 2 1 2 5 4 2 5 9 5 3 2 9 2 3 2 3 6 5 1 4 7 1 2 4 4 1 4 6 3 6 8 6 4 3 5 4 5 6 4 5 8 3 2 5 6 3 1 3 9 1 4 7 4 6 6 4 5 4 8 5 6 2 7 2 5 9 3 2 4 1 2 1 Opérations : - déterminer sommets adjacents à un sommé donné - déterminer arêtes formant le contour d une face 41

- déterminer la normale extérieure à une face - déterminer l arête précédente à une arête sur le contour d une face donnée - Opérations d Euler (modifications de la structure) - construction d une DCEL à partir d une EL - Commentaires : - DCEL est un bon compromis entre peu de place mémoire et rapidité - DCEL est plus complexe que EL - Les opérations DCEL de base sont plus rapides que les EL 42

3 MODÉLISATION DE SCATTERED DATA Grands ensembles de données discrètes visualiser, en tirer de l information comprendre la relation entre les données, connaître le graphe de la fonction interpolant ou approximant les données Dans beaucoup de domaines techniques ou des sciences naturelles on rencontre le problème d interpolation ou d approximation d un très grand ensemble de données non-structurées (dispersées, irrégulières) Exemples: a) mesures de température à différents endroits dans un haut fourneau b) mesures de concentrations de minéraux connues à différentes profondeurs dans des trous de forage c) mesures de densité à différents endroits dans le corps humain d) mesures de concentration CO 2 dans l air à différents endroits sur la terre e) mesures de pression sur une aille d avion dans une souflerie donné : (x i ; f i ), i = 0,, N site de données: x i = (x i, y i ) IR 2 x i = (x i, y i, z i ) IR 3 mesures (données) f i IR cherché : fonction continue F : IR d IR (d=2,3) tq 43

F (x i ) = f i pour l interpolation F (x i ) f i pour l approximation, pex E = N i=1 ω i(f i F (x))) 2 min moindres carrés pondérés La compréhension de la relation entre les données n est en général pas possible en les traçant simplement: (x i ; f i ) (x i, y i ; f i ) Ici, en tracant le graphe de la fonction interpolante F peut considérablement aider à comprendre les données (x i y i, z i ; f i ) 44

Pour beaucoup de méthodes de visualisation de volumes il est indispensable de connaître une fonction (continue) qui représente les données, c est les cas pour la méthode de visualisation par coupe (slicing) Une fonction continue peut même servir à l extraction de données sur une grille cubique Bien que nous sommes intéressés principalement par la modélisation de scattered data volumiques ou sur une surface, il est plus facile de comprendre les différentes techniques sur des données à 2 variables indépendantes: (x i, y i ; f i ) i = 1,, N 31 MÉTHODES DE BASE POUR l INTERPOLATION DE SCATTERED DATA DU TYPE (x i IR 2, IR 3 ; f i ) 311 Méthode de Shepard (1965) Idée principale: L interpolant est une moyenne pondérée des ordonnées, les poids étant une puissance de l inverse de la distance entre les sites de données F (x) = N ω i (x)f i i=1 avec les fonctions de pondération ω i (x) = N j=1 1 [d i (x)] µ i 1 [d j (x)] µ j, d i (x) = x x i 2, µ i 1 45

d i x x i µ i = 2 en pratique u 5 u 1 u 2 u 4 u 3 Influence des µ i : µ 1 = 2, µ 2 = 1, µ 3 = 05, µ 4 = 15, µ 5 = 2 La fonction de pondération est construite de manière à ce que son influence sur un point diminue lorsque sa distance au point augmente Propriétés de ω i (x): ω i (x) C 0 continuité ω i (x) 0 positivité ω i (x j ) = δ ij interpolation F (x i ) = fi N i=1 ω i(x) = 1 normalisation 46

expression équivalente: ω i (x) = = ω i (x j ) = δ ij = F (x j ) = f j, j = 1,, N Ici on supprime les + + j i [d j(x)] µ i N k=1 j k [d k(x)] µ i et const + Méthode connue pour avoir beaucoup de désavantages: Désavantages: Méthode globale: - nécessite de recalculer toutes les ω i si un point est modifié, - ω i (x) = 1/d 2 i (x) influence trop globale µ i = 1: dérivée discontinue de l interpolant en les x i µ i > 1: flat spots (plan tangent parallèle au plan (x, y)) en les (x i, y i ), car F/ x(x i, y i ) = F/ y(x i, y i ) = 0 Donc la méthode ne reproduit pas la forme locale inhérente des données pas assez d influence des points éloignés Avantages: pas de système linéaire à résoudre Minf i F (x) Maxf i (propriété de l enveloppe convexe due à la normalisation et la positivité de ω i ) point de départ pour le développement de beaucoup d autres méthodes qui elles éliminent les discontinuités: localisation: ω i (x) = ( (R d i(x)) + Rd i (x) ) 2 (voir MQS après) d i (x) > R ω i (x) = 0 Méthode locale avec formule de récurrence, comme Newton (HL 391) 47

interpolation des premiers termes du développement de Taylor de F jusqu à l ordre k Exemple k = 1 : Interpolation des f i et de l espace tangent en les x i, ie (f i = F (x i ), F (x x i ), F (x y i ), F (x z i )) F (x) = = N i=1 ω i ( fi + < Grad F (x i ), (x x i ) ) > N i=1 ω i N i=1 ω i (f i + F (x x i ))(x x i ) + F (x y i )(y y i ) + F (x z i )(z z i ) N i=1 ω i ) = plus de flat spots, = améliore l ordre d approximation, MAIS, dérivées en général pas disponibles Généralisations: - Interpolation: F (x) = ωk (x)l k f(x) ωi (x) L k f étant une approximation de f tq L k f(x k ) = f k - Approximation au sens des mondres carrés: F (x) = F (a 0, a 1,, a n ; x) où a 0, a 1,, a n sont des paramètres à déterminer tq n k=1 [ f k F (a 0, a 1,, a n ; x)] k ωk (x) min La performance des méthodes du dernier type dépend beaucoup du choix de la fonction de pondération ω i Choix de ω i et de L k f? 48

312 Modified Quadratic Shepard (MQS) Franke, Nielson 1980 modification des fonctions de pondération pour localiser l approximation, remplacer L k f par une approximation locale appropriée : Q i F (x) = N i=1 ω i(x)q i (x) N i=1 ω i(x), ω i (x) = (R ω d i ) 2 + (R ω d i ) 2 R ω = const Q i (x): fonction biquadratique tq Q i (x i ) = f i obtenue par approximation par moindres carrés pondérés (poids φ i ) La fonction de pondération φ i pour Q i est égale à ω i avec une autre constante R q R Algorithme: 1 choisir les paramètres N q et N ω afin de définir ω i (x) = (R ω d i (x)) 2 + (R ω d i ) 2, R ω = D 2 Nω N φ i (x) = (R q d i (x)) 2 + (R q d i ) 2, R q = D 2 avec D = max ij x i x j 2 (valeurs par défaut: N q = 54, N ω = 27) 49 Nq N

2 déterminer Q i i = 1,, N, avec Q i (x) = Q i (x, y, z) =f i + a i2 (x x i ) + a i3 (y y i ) + a i4 (z z i ) + a i5 (x x i ) 2 + a i6 (y y i ) 2 + a i7 (z z i ) 2 + a i8 (x x i )(y y i ) + a i9 (x x i )(z z i ) + a i10 (y y i )(z z i ) par la méthode des moindres carrées suivante: ((x i, y i, z i ) fixé, k varie, a ij inconnues ) G i = N k=1 k i [ ] 2 φ i (x k, y k, z k ) Q i (x k, y k, z k ) f k min a ij, j=2,,10 G i étant une fonctionnelle quadratique convexe G i min G i a ij = 0, j = 2,, 10 système linéaire (9x9) à résoudre a ij Q i (x) = f i + a i2 (x x i ) + + a i10 (y y i )(z z i ) F Q i étant bien un interpolant : Q k (x k ) = f k Remarques: L influence de chaque point ne dépasse pas le rayon de R q +R ω Si les données sont bien distribuées régulièrement, les constantes R q, R ω sont bien appropriées Si les données ne sont pas d une densité régulière raisonnable, alors il pourrait être souhaitable de faire dépendre les rayons R q, R ω de i choix des rayons? expérience: bons résultats pour des rayons R q, R ω ne contenant que 26 et 13 points respectivement 50

313 Spline volumiques (Nielson 1993) Généralisation directe des fonctions splines cubiques naturelles pour les données volumiques si les splines sont représentées par des fonctions de distance Les fonctions splines cubiques sont très connues et largement acceptées grace à leur propriété variationnelle: Généralisation directe des fonctions splines cubiques naturelles petit rappel: (splines cubiques naturelles) Propriété: Entre toutes les fonctions f : [a, b] IR IR, 2 fois continuement dérivables, interpolant x 1,, x N ce sont les splines cubiques qui minimisent b a [F (x)] 2 dx effet de lissage, car minimisant une fonctionnelle d énergie de tension [ ] a x 1 F spline cubique naturelle interpolant: - F, F, F continue sur [a, b] - F (x i ) = f i, i = 1,, N - F cubique par morceau sur [x 1, x N ] - F linéaire sur [a, x 1 ] et [x N, b] donc F (x 1 ) = F (x N ) = 0 (conditions de bord) 51 b

Choisissons F (x) = N c i x x i 3 + a + bx i=1 (N+2 inconnues) Les fonctions de base {1, x, x x i 3 } sont C 2, d où un système linéaire (N+2, N+2) à résoudre (N cond d interpolation, 2 cond de bord): = c i, a, b Splines volumiques Données volumiques: (x i ; f i ), x i = (x i, y i, z i ) F (x) = N i=1 c i x x i 3 + a + bx + cy + dz Système (N+4, N+4) à résoudre pour les splines volumiques: x i x j 3 1 x N 1 1 0 0 x 1 x N 0 0 c 1 1 x 1 c N a b c d = (solution unique si x i = (x i, y i, z i ) sont tous distincts) Les quatre dernières lignes ci ( 1xi ) = 0 f 1 f N 0 0 0 0 52

sont les équivalents des conditions de bord F (x 1 ) = 0 et F (x N ) = 0 (spline naturelles) qui impliquent: (attention: la dérivée seconde n a pas de sense dans IR 3 ) ci x 1 x i = 0 (1) ci x N x i = 0 (2) Preuve: c i x 1 x i = c i x 1 x N + x N x i (2) = ci x 1 x N = 0 c i = 0 (1) : c i x 1 x i = x 1 ci c i x i = 0 c i x i = 0 Remarques: - méthode globale - très mauvais conditionnement de la matrice si N > 300, 500 ou si les données sont entachées d erreurs (si 2 points x i, x j se rapprochent, alors le cond ) - précision polynomiale est 1 - très bons résultats si N < 300, 500, surtout à l intérieur du domaine Splines volumiques locales a) Approximation par moindres carrés F (x) = M j=1 déterminer c i, a, b, c, d en minimisant c j x q j 3 + a + bx + cy + dz } {{ } Q j ( ) N M i=1 j=1 ( cj x i q j 3 + a + bx i + cy i + dz i f i ) 2 } {{ } (Q j (x i ) f i ) 2 53

Choix des noeuds q j, j = 1,, M avec M << N pour définir les fonctions de base : - les déterminer uniformément sur une grille cubique - les distribuer en fonction de la distribution des données: algorithme itératif qui démarre avec une configuration initiale d une distribution des noeuds q j et qui les modifie en minimisant les distances entre les noeuds et les sites des données b) Interpolants locaux cas à une variable: F (x) = ω i (x)f i (x), ωi (x) = 1 x ω i (x) fonctions de localisation, ω i (x) = 1, non-nuls seulement sur 2 intervalles w i F i (x) interpolant local, ie F i (x j ) = f j, x j support de ω i = [x i 1, x i+1 ] (construit par méthode classique des splines pex) F (x j ) = f j pour tous les x j i support de ω i Ce n est vrai que si les supports des ω i n ont pas d intersection 54

F (x j ) = ω i F i (x j ) = ω i F i (x j ) x j Supp(ω i ) = ω i f j = f j cas volumique: N y N x N z F (x) = ω ijk (x)q ijk (x), i=1 j=1 k=1 N x, N y, N z taille de la grille Support de Q ijk : [q i 1, q i+1 ]x[r j 1, r j+1 ]x[s k 1, s k+1 ] Maximum 8 termes sont non-nuls dans cette somme Fonctions de pondération / localisation: ω ijk (x) = t i (x)u j (y)v k (z), t, u, v sont polynomiales par morceaux de degré 3, basées sur les polynômes d Hermite cubiques: H(x) = 1 3x 2 +2x 3 On a pour ceux-là: H(0) = 1 H (0) = 0 H(1) = 0 H (1) = 0 Soit par exemple q 1 < q 2 < < q Nx la subdivision du domaine, alors les fonction t i sont définies comme suivant: 1 ( ) x < q 1 t 1 (x) = H x q1 q 2 q 1 q 1 x < q 2 0 x q 2 55

q q 1 2 0 x < q i 1 1 ( t i 1 (x)) q i 1 x < q i t i (x) = H x qi q i+1 q i q i x < q i+1 0 x q i+1 t i q q q i 1 i i+1 t Nx (x) = { 0 x < qnx 1 1 t Nx 1 q Nx 1 x < q Nx 1 x q Nx q N x 1 q N Définition analogue de u j (y) et v k (z) sur des subdivisions r 1 < < r Ny et s 1 < < s Nz Q ijk (x) spline volumique interpolant les points de la région de support R ijk correspondante - TB résultats 56

- utilisable pour des très grands ensembles de données - entrer valeurs pour la partition, ou accepter une partition par défaut (il doit y avoir assez de points par région pour les Q ijk!!) - implémentation un peu plus complexe que pour des splines volumiques ou les MQ 314 Méthode des Multi-Quadric (MQ) (Hardy 1971) Méthode du Type méthode des fonctions de base radiales ( méthodes globales de fonctions de base), qui est une des plus perfomantes: F (x) = N k=1 α i h k (x), R constante avec h k (x) = R + x x k 2 (fct radiale) Les conditions d interpolation F (x i ) = f i donnent le système suivant à résoudre: R + x i x j 2 α 1 α N = f 1 f N La méthode s appelle multiquadrique, car les h k des hyperboloïde de rotation, R = 0: h k est un cone représentent 57

Existence et unicité de la solution méthode donne des résultats lisses et tient très bien compte des formes locales: a beaucoup de succès et est facile à implémenter mauvais conditionnement de la matrice pour N > 200, 300, 500 (cond > 10 6 ) L utilisateur doit choisir le paramètre R en entrée - pas de résultats théoriques sur le choix d un R optimal - Propositions: (Hardy 71): R = 0815d, d = dist moyenne des données à leurs voisins (Franke 82): R = 125D/ N, D = diamètre du cercle qui comprend tous les données (Stead 84): R = Précision polynomiale: 1 10 max{max{x i x k }, max{y i y k }, max{z i z k }} F (x) = N α k h k (x) + k=1 M β k p k (x) {p k }, k = 0,, M base polynomiale de P M On peut ainsi forcer les fonctions F à avoir une précision polynomiale d ordre M Le système à résoudre interpolation N k=1 équilibre physique α k h k (x i ) + k=0 ( ) M β k p k (x i ) = f i i = 1,, N (1) k=1 N α k p j (x k ) = 0 j = 0,, M (2) k=1 58

N + M + 1 équations et N + M + 1 inconnues Preuve: En fait, supposons que les f i proviennent d un polynôme de d o m, ie f i = p m (x i ) où p m P m donné α k = 0, k = 1,, N est solution de (2) m β k p k (x) = p m (x) k=1 β k étant les coefficients de p m (x) = m k=1 β kp k (x) + 0 ( ) = F (x) ( ) reproduit donc les éléments de P m Méthode des fonctions de base radiales: F (x) = N α k h k (x) + k+1 N β k p k (x) h k (x) = h(d k (x)), d k (x) = x x k 2 fonctions de base radiales h k = (R + d 2 k )1/2 (Hardy) Multiquadrique meilleurs résultats aux tests h k (R + d 2 k ) 1/2 (Hardy) Multiquadrique réciproque, presque aussi bon h k = d 2 k logd k k=1 (Duchon 72, Thin Plate Splines, minimisant Franke 82) 2 R [ ( 2 f x 2 ) 2 + 2( 2 f x y )2 + ( 2 f y 2 ) 2 ] dxdy dans un espace de Hilbert - très belle théorie mathématique, - résultats proche des MQ, résultats très lisse, - conditionnement un peu moins bon Si l ensemble de données est trop grand pour la méthode globale, on procède comme pour les splines volumiques, soit LS-approximation, soit localiser avec des fonctions de pondération ayant un 59

support local (ω k (x) Hermite cubique, choix des noeuds optimales + NPPR) (number of pts per region) 315 Minimum Norm Network (MNN) (Nielson 1983) Cette méthode n est pas directement généralisable au 3D La méthode MNN pour 2 variables indépendantes (x i, y i ; F i ) doit être comprise d abord 3 étapes: 1) Triangulation 2D de l EC des points P i aux coordonnées x i = (x i, y i ) i = 1,, N 2) définir un réseau de courbes C 2 interpolant les données, et minimisant une fonctionnelle 3) Remplissage du réseau de courbe par de patches C 1 60

1 TRIANGULATION P = {P 1,, P N } EC (Enveloppe Convexe): ensemble d arêtes pour lesquelles tous les points de l ensemble se trouvent sur un des deux demiplans séparés par l arête Triangulation de Delaunay: entre toutes les triangulations possibles de l EC d un ensemble de points P, c est la triangulation de Delaunay qui verifie - le critère local d angle max-min: l angle minimal de tous les triangulations est maximal, (ou ce qui est équivalent) - le critère du cercle circonscrit vide: aucun cercle circonscrit d un triangle contient un autre point de P Algorithmes: pour chaque arête, voisine à deux triangles, verifier le critère local d angle max-min Edge swap O(N 2 ): Changer l arête diagonale (swap) si l angle minimal de la présente configuration est plus petit que dans l autre Repeter cette traverse de toutes les arêtes interne de la triangulation jusquà ce qu il ny a plus de changement à faire Divide-and-Conquer O(N logn): Algorithme dynamique O(N 2 ) 61

D autres triangulations: - angle min-max: T est mieux que T si α(t ) < α( T ), où α(t ) = max{α(t j )/T j T } - Rayon max-min: le plus petit des rayons des cercles circonscrits des triangles est maximal - Aire max-min: le minimum des aires des triangles est maximal 2 RESEAU DE COURBES F j s ij F i s ij : [0, 1] IR IR s ij courbe d Hermite cubique V j V i =(x,y ) i i s ij (t) = F i H 0 (t) + F j H 1 (t) + s e ij (V i ) H 0 (t) + s e ij (V j ) H 1 (t) H i, H i polynômes d Hermite de degré 3 S : D IR 2 IR où s ij = S/ eij ( ) Dérivée directionnelle: e ij = 1 xj x i e ij y j y i s (V i ) = (x j x i ) e ij e ij S x(v i ) + (y j y i ) e ij S y(v i ) s (V j ) = (x j x i ) e ij e ij S x(v j ) + (y j y i ) e ij S y(v j ) Pour pouvoir définir les courbes d Hermites s ij, il nous manque encore les dérivées partielles premières en V i et V j : S x et S y Ils 62

sont déterminer de facon à ce que le réseau de courbes résultant soit la réstriction sur les arêtes e ij d une surface minimisant une fonctionnelle d énergie (voir splines cubiques) Rappel: Les splines cubiques naturelles interpolant (t i ; F i ) i = 1,, N, sont polynomiale de degré 3 par morceau et solution { de tn min f H 2 [t 1,t n ] t 1 [f (t)] 2 dt avec f(t i ) = F i où H 2 [t 1, t n ] = f/f C 1 [t 1, t n ], f absoluement continue, f L 2 [t 1, t n ]} La fonctionnelle adaptée à ce réseau de courbes est σ(f ) = ij N e e ij [ 2 ] 2 F ds ij ( ) e 2 ij N e = {ij/e ij est une arête de la triangulation } ds ij élément d arc de la courbe correspondant à l arête e ij F est la restriction aux arêtes e ij d une fonction de classe C 1 sur le domaine D Pour calculer la solution S de σ(f ) Min avec S(V i ) = F i, il faut résoudre le système suivant: (x j x i ) e ij 3 ij N i (y j y i ) e ij 3 ij N i [ (x j x i )S x (V i ) + (y j y i )S y (V i )+ 1 2 (x j x i )S x (V j ) + 1 2 (y j y i )S y (V j ) + 3 ] 2 (F j F i ) = 0 i = 1,, N [ (x j x i )S x (V i ) + (y j y i )S y (V i )+ 1 2 (x j x i )S x (V j ) + 1 2 (y j y i )S y (V j ) + 3 ] 2 (F j F i ) = 0 i = 1,, N 63

N i = {ij / e ij est arête de la triang, tq V i est sommet de e ij } 2N équations 2N inconnues S x (V i ), S y (V i ) système creux, méthode itéraitve Ainsi nous avons le reseau de courbes cubiques C 1 associé à la triangulation des sommets V i et minimisant l énergie de tension d une latte élastique Démonstration (classique): définir un produit scalaire < F, G > tq et montrer que σ(f ) σ(s) 0 σ(f ) σ(s) =< F S, F S > 3 REMPLISSAGE Construction d un interpolant C 1 triangulaire: P [F ] : IR 2 IR: F(V ) i F(V ) k F(V ) j réseau de courbes C 1 cubiques par morceaux 64

Remplissage avec la méthode d interpolation coté - sommet (side-vertex) (Nielson 1979) interpolation d une infinité de positions et de dérivées le long du bord du triangle V 1 b1 X e : 2 1 b1 V 3 coordonnées barycentriques du point x = b 1 V 1 + b 2 V 2 + b 3 V 3 avec b 1 + b 2 + b 3 = 1 et b i 0 e 3 e 1 S 1 S 1 = b 2 1 b 1 V 2 + b 3 1 b 1 V 3 V 2 P 1 [F ] opérateur interpolant F (V 1 ), F (S 1 ), F (V 1 ), F (S 1 ) avec Hermite cubique P 1 [F ] = H 0 (b 1 )F (V 1 ) + H 1 (b 1 )F (S 1 ) + H 0 (b 1 )F (V 1 ) + H 1 (b 1 )F (S 1 ) F (V 1 ) données en entrée F (S 1 ) MNN F (V 1 ) MNN: F x (V 1 ), F y (V 1 ) F (S 1 ) à calculer par interpolation lin des dérivées partielles en V 2, V 3 F (V 1 ) = (x x 1) x x 1 F x(v 1 ) + (y y 1) x x 1 F y(v 1 ) avec x x 1 = 1 b 1 = (x x 1)F x (V 1 ) + (y y 1 )F y (V 1 ) 1 b 1 dérivée dir 1 1 b 1 ( x x1 y y 1 F (S 1 ) = (x x 1)F x (S 1 ) + (y y 1 )F y (S 1 ) 1 b 1 dérivée dir transversale ) F x (S 1 ), F y (S 1 ) obtenue par interpolation lin: 65

( ) b2 F x (S 1 ) = F x (V 2 ) + 1 b 1 ( ) b2 F y (S 1 ) = F y (V 2 ) + 1 b 1 ( b3 ) F x (V 3 ) 1 b 1 ) F y (V 3 ) 1 b 1 ( b3 V 1 F x F y F x F y F x F x V 3 F y Fy F x Les opérateurs P 2 [F ] et P 3 [F ] se définissent de manière analogue Une combinaison pondérée (fonctions poids ω i ) de ces opérateurs résulte en un interpolant C 1 : P [F ](b 1, b 2, b 3 ) = b2 2b 2 3P 1 [F ] + b 2 1b 2 3P 2 [F ] + b 2 1b 2 2P 3 [F ] b 2 1 b2 2 + b2 1 b2 3 + b2 2 b2 3 V 2 Fy = ω 1 P 1 [F ] + ω 2 P 2 [F ] + ω 3 P 3 [F ] avec 3 ω i = 1 i=1 ω i / arête j = δ ij ω i / arête j = 0 b facile à vérifier, pex ω 1 = 2 2 b2 3 : b 2 1 b2 2 +b2 1 b2 3 +b2 2 b2 3 ω 1 / arête 1 = 1, car b 1 = 0 sur l arête 1 ω 1 / arête 2 = 0, car b 2 = 0 sur l arête 2 ω 1 / arête 3 = 0, car b 3 = 0 sur l arête 3 D où P [F ]/ arête 1 = P 1 [F ]/ arête 1 interpole bien l arête e 1, 66

et P [F ](V 1 ) = P 1 [F ](V 1 ) interpole bien le sommet V 1 Maintenant les dérivées: P = ω 1 P 1 + ω 1 P 1 + ω 2 P 2 + ω 2 P 2 + ω 1 = 0 P = ω 1 P 1 + ω 2 P 2 + ω 3 P 3 Graçe à la forme Hermite des P i [F ] on sait qu ils interpolent bien les dérivée sur les arêtes et sommets correpondants +++ 316 MNN VOLUMIQUE (Nielson 1993) 1 TETRAÉDRISATION L agorithme le pire au monde : a) générer chaque combinaison de 4 points dans P O(N 4 ) b) pour chaque ensemble de 4 points O(N) - calculer l équation de la sphère circonscrite unique - s il n y a pas d autres points de P à l intérieur de la sphère, ajouter ces 4 points dans la liste des tetraèdres Complexité: O(N 5 )!!! Algorithme: On utilise le fait que chaque face d un tetraèdre appartient soit à un autre tetraèdre, soit à l enveloppe convexe de P a) trouver le premier tetraèdre, le mettre dans la liste b) pour chaque tetraèdre de la liste { pour chaque face de ce tetraèdre { IF elle n est pas la face d un autre tetraèdre de la liste THEN 67

{ pour chaque point de P (sauf les 3 de la face actuelle) - calculer la sphère circonscrite - s il n y a pas d autres points à l intérieur, ajouter les 4 points comme tetraèdre à la liste } } } 2 RESEAU DE COURBES Minimisation σ(f ) = ij N e e ij ( ) 2 2 F e 2 ds ij ij N e = {ij : e ij arête d un tetraèdre } Solution: réseau de courbes C 1, cubiques par morceau, définie sur les arêtes de la tetraédrisation, tq 68

[ (x j x i ) e ij 3 (x j x i )S x (V i ) + (y j y i )S y (V i ) + (z j z i )S z (V i )+ ij N i 1 2 (x j x i )S x (V j ) + 1 2 (y j y i )S y (V j ) + 1 2 (z j z i )S z (V j )+ ] 3 2 (F j F i ) = 0, i = 1,, N [ (y j y i ) e ij 3 (x j x i )S x (V i ) + (y j y i )S y (V i ) + (z j z i )S z (V i )+ ij N i 1 2 (x j x i )S x (V j ) + 1 2 (y j y i )S y (V j ) + 1 2 (z j z i )S z (V j )+ ] 3 2 (F j F i ) = 0, i = 1,, N [ (z j z i ) e ij 3 (x j x i )S x (V i ) + (y j y i )S y (V i ) + (z j z i )S z (V i )+ ij N i 1 2 (x j x i )S x (V j ) + 1 2 (y j y i )S y (V j ) + 1 2 (z j z i )S z (V j )+ ] 3 2 (F j F i ) = 0, i = 1,, N 3N équations 3N inconnues S x (V i ), S y (V i ), S z (V i ) système linéaire, creux, méthode itérative En chaque point V i de la tetraédrisation - valeur de la fonction F - les dérivées (partielles) premières courbes cubiques d Hermite, C 1 en les points 69

3 REMPLISSAGE Construction d un interpolant C 1 tetraédrique: V F : IR 3 k IR avec F (V i ) = F i, i = 1,, N V l V i Domaine de definition V j V i = (x i, y i, z i ) sommet i e ij = arête (V i, V j ) Le MNN fournit en plus les valeurs de dérivée en chaque sommet: F i = ( F x (V i), F y (V i), ) F z (V i) = (F x (V i ), F y (V i ), F z (V i )) telles que les dérivées directionnelles F/ e ij en V i et V j, qui servent à déterminer l interpolant d Hermite à une variable sur une arête e ij, donnent des courbes minimisant σ(f ) On pourrait bien sur se fixer n importe quelles valeurs pour F i en les sommets, mais on n interpolerait pas un MNN F(V ) j F (V ) i F z F y F(V ) i F x F (V i ) = F = (x j x i )F x (V i ) + (y j y i )F y (V i ) + (z j z i )F z (V i ) e ij e ij Le but est d obtenir des informations C 1 partout sur le bord du tetraèdre (ie sur les arêtes et sur les faces) pour pouvoir appliquer la méthode d interpolation face-sommet (face-vertex) (Informations C 1 : positions et dérivées partielles premier ordre) 70

a) supposons info C 1 est connue sur toutes les arêtes: Comment l obtenir sur les faces? b) supposons info C 1 est connue dans les sommets: Comment l obtenir sur les arêtes? a) La méthode side-vertex-c 1 nous donne les positions et les dérivées directionnelles F(V ) i F(V ) k parallèles à la face du triangle (dans le plan des triangles) F(V ) j Pour déterminer toutes les dérivées (info C 1 complète) à l intérieur des faces, nous avons aussi besoin de définir les dérivées orthogonales aux faces Il suffit pour cela d interpoler avec la méthode coté-sommet- C 0 les dérivées normales connues sur les arêtes (voir b)) Interpolant side-vertex-c 0 : A[F ] = (1 b i )f(e jk ) + (1 b j )f(e ik ) + (1 b k )f(e ij ) b i f(v i ) b j f(v j ) b k f(v k ) ici: f(e ij ) = F n (e ij) dérivée normale à la face sur l arête e ij Cette méthode est l analogue de la méthode précédente, avec des fonctions poids ω i linéaires) b) position: cubique Hermite avec V i, V j, F e ij (V i ), F e ij (V j ) 71

cela nous détermine déjà une dérivée directionnelle, celle de direction e ij (variant comme un polynôme quadratique le long l arête e ij ) Pour obtenir un raccord C 1 avec les autres tetraèdres voisins, les autres dérivées directionnelles doivent varier (au moins) linéairement le long cette arête D où la définition du gradient de manière suivante: (pour x arête e ij ) F ij (x) = (1 t) F i + t F j + [ F (x) ] (1 t) F i + t F j, e ij e ij e ij où F i = (F x (x i ), F y (x i ), F z (x i )), t = x x i x j x, i e ij = 1 Attention: ce gradient définit les 3 dérivées, il faut vérifier que l on retrouve bien F e ij Avec le terme correctif [ ] ceci est vérifié Remarques: Ce gradient est bien cohérent avec la valeur F e ij déjà: la composante en direction e ij du gradient: qui existe < F ij (x), e ij > =< (1 t) F i + t F j, e ij > + < [ ] e ij, e ij > =< (1 t) F i + t F j, e ij > + [ ] = F e ij (x) Ce gradient vérifie bien pour une direction n, avec < n, e ij >= 0, la propriété de variation linéaire dans sa composante normale: < F ij (x), n >= (1 t) < F i, n > +t < F j, n > 72

Nous avons donc une interpolation linéaire de chaque dérivée en direction normale à l arête e ij On possède les infos C 1 sur toutes les faces et les arêtes (a) et b)) Donc on peut faire: Interpolation C 1 teraédrique avec la méthode face-vertex: V j V l face i f i V Opérateur de base: i x=(x,y,z) V k P i [F ](x) = F (V i )H 0 (b i ) + F (f i )H 1 (b i ) + F (V i ) H 0 (b i ) + F (f i ) H 1 (b i ) (0100) (0001) (0, b /1 b, b /1 b, b / 1 b ) i i i j k l (b,b,b,b ) j i k l (1000) (0010) x = b i x i + b j x j + b k x k + b l x l b i + b j + b k + b l = 1 x b i x i 1 b i = b j 1 b i x j + b k 1 b i x k + b l 1 b i x l = f i f i face opposée à V i 73 b j 1 b i + b k 1 b i + b l 1 b i = 1

D où F (V i ) = x x i x x i F x(v i ) + y y i x x i F y(v i ) + z z i x x i F z(v i ) = (x x i)f x (V i ) + (y y i )F y (V i ) + (z z i )F z (V i ) 1 b i F (f i ) = x x i 1 b i F x (V i ) + y y i 1 b i F y (V i ) + z z i 1 b i F z (V i ) L interpolant C 1 sur un tetraèdre est finalement la combinaison des 4 interpolants face-vertex P i [F ]: P [F ] = ω i P i [F ] + ω j P j [F ] + ω k P k [F ] + ω l P l [F ] avec ω i = b 2 j b2 k b2 l b 2 j b2 k b2 l + b2 i b2 k b2 l + b2 i b2 j b2 l + b2 i b2 j b2 k et ω i + ω j + ω k + ω l = 1 P [F ] interpole bien les infos C 1 du bord, car les propriétés suivantes des fonctions poids ω i sont vérifiés: ω α / face β = δ ij ω α / face α = 0 α, β = i, j, k, l car : sur la face j : b j = 0 ω i : désigne toutes les dérivées premières P [F ]/ facei doit être égal à P i [F ]/ facei ce qui est égale à P i [F ]/ facei = ω i / facei P i [F ]/ facei + ω i / facei P i [F ]/ facei ω i / facei = 0 et ω i / facei = 1 = P i [F ]/ facei Hermite = F (f i ) 74

75

32 MODÉLISATION DE SCATTERED DATA DU TYPE SURFACE-SUR-UNE-SURFACE Problème : Etant donné (x i, y i, z i ; F i ), i = 1,, N avec la restriction que x i = (x i, y i, z i ) appartiennent à une surface Trouver une fonction F : S IR 3 IR, tq F (x i ) = F i S(u,v) S (u,v) 321 Surface générale Application: déterminer la distribution de chaleur / pression sur une aile d avion Multiquadriques de Hardy 3D: (Barnhill,Piper 87) F (x) = N c i (d 2 i (x) + R 2 ) 1/2 i=1 où d i (x) = x x i, et x, x i S 76

Attention, il faut veiller à ce que l on mesure les distances correctes! x 3 x 1 x 2 322 Sphère (MNN sur la sphère) S = {(x, y, z) / x 2 + y 2 + z 2 = 1} sphère unité 1 Triangulation d une sphère: On parle de triangles sphériques propres T ijk, formant une triangulation sphérique, si a) aucun couple de {x i, x j, x k } est anti-podal, b) x i, x j, x k ne se trouvent pas sur un grand cercle, c) pas d intersection de triangles sphériques Les arêtes de la triangulation sont des courbes géodésiques non-admissible, non-admissible, admissible antipodal même hémisphère 77

N sommets 2(N 2) triangles 3(N 2) arêtes Algorithme: 1) choisir 4 points des x i, i = 1,, N qui ne se trouvent pas tous sur la même hémisphère (Halbkugel) Ces 4 points forment la triangulation initiale de 4 triangles sphériques propres (tetraèdre sphérique) 2) Insérer les N 4 points restant itérativement dans la triangulation actuelle: - si x i est à insérer, considérer 2 possibilités: a) x i T jkl \ T jkl x l x i x k b) x i T jkl T jmk x l x j x k x j x i xm 3) Optimiser la triangulation pour éviter des triangles allongées (avec l algorithme de swapping): Pour chaque quadrilatère sphérique T ijk, T lkj IF min(θ kij, Θ ijk, Θ jki, Θ kjl, Θ jlk, Θ lkj ) < min(θ ijl, Θ jli, Θ lij, Θ ilk, Θ lki, Θ kil ) THEN choisir l arête diagonale e il ELSE choisir l arête diagonale e jk 78

i i k e kj j k e il j l l où Θ abc est l angle entre les deux plans contenant les arêtes e ab et e bc an passant par l origine Distance géodésique entre x i, x j : d(x i, x j ) = arcos(< x i, x j >) Paramétrisation de la sphère: x = cosθcosφ π 2 Θ π 2 y = cosθsinφ z = sinθ 0 Φ 2π Tracer les arcs géodésiques: A : [0, 1] S IR 3 A(t) P Q 0 t 1 A(t) = Psin(φ(1 t)) + Qsin(φt) sinφ, φ = arcos(< P, Q >) 2 Réseau de courbes: Sur chaque arête géodésique de la triangulation sphérique un polynôme cubique est construit, le paramètre est la distance géodésique 79

Un MNN-système analogue au MNN classique donne les dérivées directionnelles de base en les sommets de la triangulation: F Θ = F Θ, F Φ = F Φ avec Θ, Φ latitude, longitude de la sphère Une dérivée directionnelle en direction (x i x j ) est calculée avec F [x i x j ] = Θ [x i x j ] F Θ + Φ [x i x j ] F Φ les coefficients sont un peu plus compliqué à calculer que (x i x j ) x i x j (y i y j ) x i x j dans le MNN classique Le système à résoudre: (Nielson, Ram Focus) i,j N i 1 Θ [x j x i ] (x i) x j x i [ Θ [x j x i ] (x i)s Θ (x i ) + + 1 2 Θ [x j x i ] (x i)s Θ (x j ) + 1 2 Φ [x j x i ] (x i)s Φ (x i ) Φ [x j x i ] (x i)s Φ (x j ) + 3 2 caractérisant un réseau de courbes minimisant 3 Remplissages: σ(f ) = e ij ( 2 F [x i x j ] 2 P i [F ] = F (x i )H 0 (b i ) + F (M i )H 1 (b i ) F ) ds ij + x i M i [x i M i ] (x i ) H 0 (b i ) F + x i M i [x i M i ] (M i ) H 0 (b i ) i = 1, 2, 3 80 ] F i F j = 0 x j x i

x i e i M i M i intersection du plan (0, x i, x) avec l arête e i t = x M i où distance géodésique x i M i P [F ] combinaison convexe de P 1 [F ], P 2 [F ], et P 3 [F ] comme dans la méthode coté-sommet (side-vertex) classique Les coordonnées barycentriques b 1, b 2, b 3 de x étant les coodonnées barycentriques du triangle plan x 1, x 2, x 3 de x (x projection centrale de x sur le triangle plan) 81

4 VISUALISATION DE DONNÉES SURFACE-SUR-UNE-SURFACE Une des méthodes les plus puissantes pour la visualisation de données sur des surfaces est la méthode de contour Nous présentons ici l algorithme pour les sphères: 41 CONTOUR D UNE FONCTION SUR UNE SPHÈRE La méthode consiste à tracer des courbes sur la sphère sur lesquelles la fonction admet une valeur constante, ie F (x) = α, α = constant La fonction peut être connue continuement, ou simplement en un nombre fini de points Il est très difficile de calculer ces courbes directement, d où un algorithme qui donne des courbes de contour approximantes 411 Fonction connue discrètement F n est connue qu en un nombre fini de points Si la densité des points n est pas suffisante pour en pouvoir extraire des informations directement (triangulation spherique, puis contouring), une méthode de scattered data sur une sphère (ex MNN sphérique, basée sur une triangulation de Delaunay sphérique, voir 322) est à utiliser pour interpoler les données et pour fournir une description continue Ensuite il est à procéder comme sous 412 82

412 Fonction connue continuement Si la fonction est connue de manière continue sur tout le domaine, il faut d abord l évaluer sur une grille triangulaire du domaine, ici la sphère Pour un meilleur rendu il est important que la grille soit la plus régulière possible (triangles tous de la même taille, équiangulairs, équilatéraux) Décomposition régulière du domaine sphérique en triangles algo 1: grille lattitude-longitude, puis décomposition des quadrilatères en triangles: donne des triangles plus petits proche des pôles!!! algo 2: - 4 arêtes du tetraèdre initial: (4 points, 4triangles) (0, 0, 1), ( 2 3, 6 3, 1), 3 ( 2 3, 6 3, 1), 3 ( 2 2 3, 0, 1 3 ) - subdiviser uniformément les arc géodésiques joignant ces 4 points: P A(t) Q 0 t 1 A(t) = P sin(θ(1 t)) + Qsin(Θt) sin(θ) 83, 0 t 1

Θ = arcos(< P, Q >) est la distance géodésique entre P, Q Pour t équidistant, on obtient des points équidistant sur l arc géodésique entre P et Q C est la fonction que l on utilise pour tracer les arcs géodésiques sur une sphère algo 3: - Triangulation initiale avec l icosaèdre sphérique: 12 points, 30 arêtes, 20 triangles - L icosaèdre se construit par triangulation de l enveloppe convexe de l intersection orthogonale de 3 plans dont les longueurs des 2 arêtes ont le rapport suivant: ( 5 1) : 2 = 2 : ( 5 + 1) qui est connu sous le nom nombre d or Triangulation équiangulaire - Ensuite subdivision régulière de chaque triangle obtenu ainsi Après k subdivisions, on obtient n (k) = 2 + 4 k (n a n t ) points n (k) a = 4 k n a arêtes 84

n (k) t = 4 k n t triangles Calcul des lignes de contour approximantes: - En supposant que F ne varie que linéairement sur les arcs (arêtes), calculer les points d intersection du contour sur les arcs: + + P + V + Q F (P ) > α F (Q) < α V point du contour V = P sin ( ) α F (Q) Θ( )+P F (P ) F (Q) ) F (P ) α) sin (Θ( F (P ) F (Q) ) sin(θ) - Joindre les points du contour à travers les triangles par des arcs géodésiques Remarques: Les lignes de contour montrent bien la distribution des valeurs de la fonction sur la surface 85

montre bien les positions des maxi et mini peut facilement être généralisé sur des surfaces quelconques ne montre pas bien la forme géométrique de la fonction, ni si elle est lisse 42 AUTRES MÉTHODES Visualisation de la fonction définie sur la sphère comme graphe de fonction F : (Θ, Φ) D IR 2 IR les 2 variables Θ, Φ étant la lattitude et longitude de la paramétrisation sphérique - les courbes correspondantes aux lignes devant-derrière (les 2 pôles) dans D sont des droites à hauteur constant - les courbes correspondantes aux lignes gauche-droite (même méridien) dans D sont des courbes identiques dans le graphe Projection normale de la distance F (x) en x Px = x + F (x) N N où N est la normale de la sphère N = x car le centre de la sphère se trouve à l origine Problème d auto-intersection de la surface ainsi obtenue si F (x) < 2 (pour la sphère unité) 86

adaptation de l échelle des valeurs de F: MinxF (x) = 1, MaxxF (x) = 2 Généralisable aux surfaces fermées quelconques: x + F (x) N, mais problèmes d auto-intersection si la surface n est pas convexe 87

5 VISUALISATION DE DONNÉES VOLUMIQUES La plupart des méthodes de visualisation volumique supposent que les données soient disponibles sur une grille uniforme Comme nous l avons vu dans les exemples, ce n est en général pas le cas Si les données ne se trouvent pas sur une grille uniforme, les méthodes de modélisation de scattered data interviennent pour modéliser une fonction définie sur le domaine entier qui interpole ou approxime les données Ce modèle est ensuite utilisé pour en extraire des données sur une grille uniforme (échantillonnage, sampling), qui sont à l entrée (input) des algorithmes de visualisation volumique Nous supposons donc ici que les données volumiques (x i, y j, z k ; F ijk ) sont disponibles sur une grille cube uniforme Données volumiques uniformes: (x i, y j, z k ; F ijk ), i = 1,, N x j = 1,, N y k = 1,, N z à l entrée de la plupart des algorithmes Origine: - mesure / simulation sur une grille cubique - modélisation de scattered data & échantillonnage sur une grille cube 88

51 METHODES DE DECOMPOSITION DU DOMAINE 511 Cubes minces L idée de base consiste à placer des petits cubes dans le domaine (volume) dont un attribut (couleur, vibration, vitesse de rotation) est déterminé en fonction de la variable dépendente F à l endroit où se trouve le cube mince Placer des cubes minces dans le domaine en (x i, y j, z k ) Colorage des cubes en fontion de F ijk en (x i, y j, z k ) Paramètres à choisir: N x, N y, N z M paramètre contrôlant l espace entre les cubes (ie leur taille) Soit ( x, y, z): largueur, longueur, hauteur du cube mince Coordonnées du coin en bas-gauche-avant de chaque cube: x i = x 0 + (i 1) x(m + 1) y j = y 0 + (j 1) y(m + 1) z k = z 0 + (k 1) z(m + 1) i = 1,, N x j = 1,, N y k = 1,, N z (x 0, y 0, z 0 ) = (x min, y min, z min ) coord du coin en bas-gauche-avant du domaine x = x max x min N x (M + 1) M y = y max y min N y (M + 1) M z = z max z min N z (M + 1) M 89

Exemple: N x = N y = N z = 5, M = 1 domaine x min = y min = z min = 0 y 9 x max = y max = z max = 9 x = y = z = 1 x i = 2i 2 y i = 2j 2 1 1 2 9 x z i = 2k 2 A chaque sommet des cubes est attribué une couleur en fonction de la valeur F ijk d après une table de couleurs Exemple: index R G B i=0,255 i 255 - i 0 i=256,511 255 i - 255 0 i=512,767 255 255 i - 512 Les faces des cubes sont ensuite colorées avec l algorithme de Gouraud Il est important d avoir cette méthode dans un programme interactif permettant de faire des rotations du volume en temps réel pour mieux perçevoir les locations des différents cubes minces Cela nécessite une station de travail capable de visualiser 6 N x N y N z polygones en tems réel En pratique, un visualisation avec 15 3 cubes rend l image déjà presque trop complexe Coloriage des faces des cubes avec l algorithme de Gouraud 90

Utilisation d un programme interactif: rotations du volume en temps réel 512 Cubes transparents L idée est d attribuer une couleur (RGB) à chaque sommet (x i, y j, z k ) de la grille en fonction de la valeur F ijk L algorithme de Gouraud ou une simple interpolation bilinéaire fait ensuite un coloriage correspondant des faces de chaque cube de la grille Si on affichait ensuite toutes les faces, seul les faces extérieures seraient visibles Pour pouvoir regarder à l intérieur, on calcule une image avec un simple modèle de transparence qui s appelle α-buffer attribuer une couleur RGB à chaque sommet (x i, y j, z k ): C ijk = (R ijk, G ijk, B ijk ) =(R(F ijk ), G(F ijk ), B(F ijk )), R(), G(), B() = table de couleurs i, j, k = 1,, N x, N y, N z Colorage des faces parallèles aux axes (des cubes): 3N x N y N z rectangles (Gouraud) Trier les rectangles en fonction de leur distance par rapport à un point de vue Afficher les rectangles dans l ordre du fond au front en utilisant un α-buffer Remarque: interaction varier la transparence α et la rotation du graphe en temps réel 91

pour chaque rotation les rectangles doivent être triés!! diminution de la possibilité d interaction α-buffer Si α = α i pour tout i: I = αi n + (1 α)αi n 1 + (1 α) 2 αi n 2 = + (1 α) n I 0 plus α est grand, plus l objet est transparent! α = 1 I = I n α = 0 I = I 0 Ombrage de Gouraud 52 SLICING L idée principale est d afficher simultanément les 3 grilles rectangulaires 2D parallèles aux axes, chacune obtenue en prenant une tranche en fixant une des 3 variables indépendantes à une valeur constante 92

y=const x=const (x, y, z) z=const trancher le volume parallèle aux axes visualiser (contouring couleur) la fonction F comme une fonction de deux variables sur ses plans en fixant une des 3 variables: pex x = const visualiser F x (y, z) = F ( x, y, z) y min y y max, z min z z max Interaction : faire varier avec la souris le point fixé ( x, ȳ, z) 53 ISO-SURFACES - CONTOURING S α = {(x, y, z) F (x, y, z) = α} iso-surface (surface isovaleur, surface de niveau, surface de contour) La méthode d extraction d iso-surfaces dépend du modèle et du type des données Application importante: imagerie médicale visualisation d un objet composé d un certain type de matériau: Os, cerveau, tissue doux, 93

531 Iso-surface de scattered data données irrégulières, scattered data (x i, y i, z i ; F i ) i = 0,, N a) Tetraédrisation de l EC: décomposer l EC en un ensemble de tetraèdres T ijkl ayant p i, p j, p k, p l comme sommets b) supposer que F est linéaire par morceau sur chaque tetraèdre, la surface de contour sera donc un polyèdre avec des facettes triangulaires ou quadrilataires planes F linéaire est acceptable: si F ne varie pas beaucoup, ou si les tetraèdres sont suffisament petits Sinon, il vaut mieux faire Scattered data volumique + échantillonnage sur une grille plus fine c) les F ijk sont connues en les sommets des tetraèdres Déterminer les sommets où F ijk < α ou F ijk > α 3 cas possibles : + - contour surface - + + + + - - triangle + + quadrilatere plan Variation linéaire de F le long des arêtes V - p j ( α Fj V = F i F j ) ( ) Fi α p i + p j F i F j + pi 94

Deux algorithmes de tetraédrisation d une EC de points L agorithme le pire au monde : a) générer chaque combinaison de 4 points dans P (en O(N 4 )) b) pour chaque ensemble de 4 points (en O(N)) - calculer l équation de la sphère circonscrite unique - s il n y a pas d autres points de P à l intérieur de la sphère, ajouter ces 4 points dans la liste des tetraèdres Complexité: O(N 5 )!!! Algorithme: On utilise le fait que chaque face d un tetraèdre appartient soit à un autre tetraèdre, soit à l enveloppe convexe de P a) trouver le premier tetraèdre, le mettre dans la liste b) pour chaque tetraèdre de la liste { } pour chaque face de ce tetraèdre { } IF elle n est pas la face d un autre tetraèdre de la liste THEN { } pour chaque point de P (sauf les 3 de la face actuelle) - calculer la sphère circonscrite - s il n y a pas d autres points à l intérieur, ajouter les 4 points comme tetraèdre à la liste 95

532 Algorithme MARCHING CUBE (Lorensen, Cline 1987) données sur une grille cubique l algorithme marching cubes est appliqué à un cube après l autre marcher à travers chaque cube un cube est un sous-ensemble du domaine de sommets (x a, y b, z c ), a = i, i + 1, b = j, j + 1, c = k, k + 1 dans chaque cube un ensemble de triangles est calculé qui contribue à approximer S α F est supposée être linéaire sur les arêtes du cube évaluation en chaque sommet (x i, y j, z k ) de la grille, et tester si F ijk > α ou F ijk < α = 8 sommets par voxel 256 = 2 8 possibilités = + - + ou - cas symétriques 128 possibilités = seul les configurations avec au plus 4 valeurs supérieures à l isovaleur α sont à considérer = considérons de plus les équivalences par rotation = finalement: restent 15 configurations à tester et à trianguler 96

Il y a des configurations où une autre triangulation peut changer la topologie de la surface, pex 14 pb: certaines constellations peuvent produire des iso-surfaces avec des trous Il y a 2 possibilités pour traiter ce cas spécial: a) ajouter les 2 triangles à la liste des triangles du contour: b) trianguler autrement les sommets sur les arêtes (2 possib): 97

Visc p37, unten links voir (Nielson, Hamann 1990) 532 Algorithme MARCHING TETRAÈDRE pour éviter la création de trous avec le MC, décomposer chaque voxel en un ensemble de tetraèdres 2 possiblilités:! Décomp en 5 tetraèdres: pour maintenir la continuité C 0 il faut alterner les 2 décompositions (gauche, droite) d un voxel à l autre! Le nombre de sous-domaines à traiter par MT est multiplié par 5 ou 6 par rapport au MC classique Le nombre de triangles est plus petit dans le MT que dans le MC, donc le nombre totale n est pas multipliée par 5 ou 6 MT produit en moyenne 150 % à 250 % plus de triangles que MC 98

54 VOLUME RENDERING - RAY CASTING Ray casting volume rendering mapping from density to opacity under construction 99

100

101

102

103

104

105

106

107

108

109

L=(1 0 0) trans 09 coul 250 L=(0 1 0) trans 09 coul 250 L=(0 0 1) trans 09 coul 250 L=(-1 0 0) trans 09 coul 250 L=(0-1 0) trans 07 coul 200 L=(1 1 1) trans 09 coul 250 L=(1 0 0) trans 07 coul 250 L=(0 0 1) trans 07 coul 200 L=(1 0 0) trans 07 coul 200 110

07/200 100/09/250 100/03/100 100/03/250 100/09/200-100/09/100 010/09/100 0-10/09/100 100/09/100 (50) 100/09/250 (50) 100/09/250 (90) -100/09/250 (90) 010/09/250 (90) 0-10/09/250 (90) 010/09/250 (70) 0-10/09/250 (70) 010/1/250 (70) 100/1/250 (70) 010/1/250 111

100/09/250 100/09/250 (100-70) 010/09/250 (100-70) 112