Marching tetrahedra

Marching tetrahedra

Cette méthode est destinée à représenter la surface définie par \{(x,y,z) \in \mathbb{R}^3 , f(x,y,z)=0\}, avec f une fonction définie sur l'espace. Le principe de base est identique au marching cubes.

On notera alors que le marching cubes est une technique ayant fait l’objet d’un copyright, alors que la technique du marching tetrahedra a été créé pour contourner ce brevet.

Une fois que l’on sait que l’on doit tracer l’isosurface sur le cube, on va décomposer ce cube en tétraèdres. On peut, par exemple décomposer le cube en 6 tétraèdres.

Décomposition d'un cube en tétraèdres

Sur chaque tétraèdre, on va construire l’isosurface. Comme on n’a plus que 4 points dans la structure considérée, on n’a que 16 cas à considérer, ce qui par parité, se réduit à 8 cas. Les différents cas sont exposés ici :

Décomposition d'un cube en tétraèdres

Chaque point de l’intersection entre l’isosurface et le tétraèdre est calculé par interpolation linéaire entre les 2 points du tétraèdre correspondant. Pour le reste, la méthode est la même que pour le Marching Cube.

Implémentation

Un tétraèdre est intégralement déterminé par les 4 points qui le composent. On peut implémenter la méthode du marching tetraedra de la manière suivante: on commence par créer une procédure PolygoniseTri. Cette procédure prend en paramètre (par exemple) :

  • Une isovaleur
  • Le numéro des 4 points du cube C qui compose le tétraèdre.

On commence par créer un nombre qui code les sommets positifs et négatifs : M Suivant ce nombre, on crée directement les triangles de l’isosurface, en même temps que l’on calcule les coordonnées des points. On notera qu’au maximum 2 triangles composent la surface sur un tétraèdre. Les données de sorties sont par exemple:

  • Un nombre n_Tri qui indique le nombre de triangles créés (1 ou 2)
  • Un tableau Tab_Tri de taille n_Tri qui contient les triangles sous forme d'une structure Triangle.
Sommets positifs et négatifs d'un cube

Pour un cube comme celui-ci, l’appel qui permet de créer l’isosurface sur tout le cube est :

  • PolygoniseTri(isovaleur, 2,7,3,1);
  • PolygoniseTri(isovaleur, 0,7,1,3);
  • PolygoniseTri(isovaleur, 6,1,7,2);
  • PolygoniseTri(isovaleur, 0,1,7,4);
  • PolygoniseTri(isovaleur, 1,4,5,7);
  • PolygoniseTri(isovaleur, 1,7,5,6);

Voir aussi


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Marching tetrahedra de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Marching Tetrahedra — Introduction Cette méthode est destinée à représenter la surface définie par , avec f une fonction définie sur l espace. Le principe de base est identique au marching cubes. On notera alors que le marching cubes est une technique ayant fait… …   Wikipédia en Français

  • Marching Cubes — 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) Les « marching cubes » désignent un algorithme d infographie publié à la conférence… …   Wikipédia en Français

  • Marching cubes — 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) Les « marching cubes » désignent un algorithme d infographie publié à la conférence… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”