IFT3355: Infographie Visualisation © Victor Ostromoukhov Dép. I.R.O. Université de Montréal
Données Certaines données ont une composante géométrique données géographiques, chaleur d’une pièce, etc. Certaines données n’ont pas de telle composante géométrique, et il faut lui créer une forme spatiale Info Viz stock market, données logicielles, etc. Certaines données sont multidimensionnelles
Données scalaires 2D Iso-contours Densité de points Niveaux de gris et de couleur Carte d’élévation (height field)
Données scalaires 3D Iso-surfaces polygonisation (marching cubes) tracer de rayon Densité de particules Rendu volumique Iso-surfaces
Iso-surfaces: Marching Cubes Marque les sommets selon au-dessus (+) et au- dessous (-) de la densité cible Interpole linéairement sur chaque segment (+,-) la position de la densité cible Relie les sommets par des triangles + + + + - - + -
Iso-surfaces: Marching Cubes Polygonisation: configurations possible mais par symétrie, 15 configurations nécessaires Fréquemment utilisé aussi pour extraire une surface d’une surface implicite Ambiguités… + - - +
Iso-surfaces: Tracer de rayon Intersecte le rayon avec l’interpolation trilinéaire de la densité (racines d’un polynôme cubique) Dérivations mathématiques dans [Shirley] Doit s’assurer que l’intersection trouvée est la plus proche de l’origine du rayon, dans la bonne direction, et qu’elle est dans le voxel
Iso-surfaces: Tracer de rayon Normale au point d’intersection pour shading + Il n’y a plus de cas ambigus
Rendu volumique La position de la surface dans un volume n’est pas toujours une décision binaire On parle alors d’une densité de particules dans un volume Une façon d’interpréter cette densité est en fonction d’une distribution de micro-sphères opaques (et parfois réfléchissantes)
Rendu volumique Bris de structure Atlas anatomique: CT et MRI Ondes de choc: simulation Navier-Stokes Flot autour d’une aile d’avion
Rendu volumique: Tracer de rayon Algorithme de tracer de rayon (derrière b à devant a) color = color_background; t = (b - a) / n; p = b; for (i = 1 to n) p - = t; color += (1 - density(p)) color + density(p) color(p);
Rendu volumique: Tracer de rayon Algorithme de tracer de rayon (devant à derrière) opacity = color = 0; while (in volume) opacity = Sample (opacity); if (opacity > 0) color = Sample (color); color_acc += color (1 - opacity_acc); opacity_acc += opacity (1 - opacity_acc); position += t;
Splatting La projection de chaque voxel (footprint) est considérée comme une tache filtrée Composition de derrière à devant
Projection parallèle shear rayons de vue coupes du volume projection plan image rayons de vue coupes du volume projection warp
Projection perspective shear et scale plan image rayons de vue coupes du volume projection warp
Projection vs. Tracer de rayon mémoire antialiassage parallélisme efficacité Tracer de rayon tout le volume un pixel supersampling pixel plus opaque Projection un voxel toute l’image analytique lignes de voxels