Marching cubes
Le marching cubes est un algorithme d'infographie publié à la conférence SIGGRAPH 1987 par Lorensen et Cline. Il permet de créer un objet polygonal à partir d'un champ scalaire en trois dimensions (son unité élémentaire est souvent appelée voxel), en principe créé par approximation d'une isosurface.
Il est le pendant 3D de l'algorithme marching squares.
Principe de fonctionnement
Cet algorithme parcourt le champ scalaire, prenant huit points à la fois (définissant ainsi un cube imaginaire), et détermine les polygones à créer (si polygone à créer il y a) pour représenter une partie de l'isosurface contenue dans ce cube.
Ceci fonctionne en créant un index dans un tableau précalculé des 256 configurations de polygones possibles () dans un cube, en traitant chacune des 8 valeurs scalaires comme un bit dans un nombre entier de 8 bits. Si la valeur scalaire est supérieure à la valeur de l'isosurface (i.e., est à l'intérieur de la surface), alors le bit correspondant est mis à 1, sinon il est mis à 0. La valeur finale aprÚs le test des 8 points est l'index de la bonne configuration polygonale dans le tableau précalculé.
Finalement, chaque sommet des polygones crĂ©Ă©s est placĂ© Ă sa position finale le long de l'arĂȘte du cube, en interpolant linĂ©airement les deux valeurs scalaires connectĂ©s par cette arĂȘte.
Les 256 valeurs du tableau de configuration des polygones sont précalculées par réflexion et symétrie à partir de 15 cas possibles.
La valeur Ă chaque point du champ scalaire est aussi utilisĂ©e pour calculer le vecteur normal de l'isosurface passant en ce point. Ce calcul est basĂ© sur le gradient du champ. Il est donc possible d'interpoler ces valeurs le long de chaque arĂȘte de chaque cube de façon Ă obtenir la normale des points sur la surface. L'interpolation permet d'Ă©viter un calcul analytique du gradient pour une position quelconque. Le calcul des normales permet l'ombrage de l'objet par la suite.
Applications
Les applications principales de cet algorithme sont du domaine de la visualisation mĂ©dicale, comme la reconstruction de surfaces Ă partir des images issues de scanners ou d'IRM. L'algorithme peut Ă©galement ĂȘtre mis en Ćuvre pour des effets spĂ©ciaux et des outils infographiques comme la modĂ©lisation 3D d'objets organiques (metaballs et toutes autres isosurfaces).
Brevets
Cet algorithme est le premier exemple de brevet logiciel dans le domaine de l'infographie. Un algorithme similaire, appelĂ© « Marching Tetrahedrons », a Ă©tĂ© dĂ©veloppĂ© de façon Ă contourner ce brevet et quelques problĂšmes topologiques mineurs liĂ©s Ă l'utilisation de cubes. Le brevet couvrant les Marching cubes a expirĂ© : il a Ă©tĂ© dĂ©posĂ© le au Bureau des brevets des Ătats-Unis, le dĂ©lai de 20 ans ayant expirĂ©, son implĂ©mentation et son utilisation sont dĂ©sormais libres de droit.
Le problÚme du brevet ne se posait pas pour les utilisations à l'intérieur d'un pays ne couvrant pas les brevets logiciels, comme la France, ou la majorité des pays d'Europe.
Voir aussi
Articles connexes
Liens externes
- "The Marching Cubes Algorithm", voir crédits sur la page