AccueilđŸ‡«đŸ‡·Chercher

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.

TĂȘte et structures cĂ©rĂ©brales (cachĂ©es) obtenues par l'application des marching-cubes sur 150 tranches provenant d'un IRM (env. 150 000 triangles)

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.

Les 15 cas possibles de configuration des polygones

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.

Références

    Voir aussi

    Articles connexes

    Liens externes

    Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.