Il y a par conséquent, plus de faces générées qu'avec l'algorithme du Marching Cubes.
Pour chacun des cubes et des tétraèdres, on évalue la valeurs des sommets avec l'isovaleur de la
fonction. Ensuite, pour chaque arête intersectée, on calcule l'intersection par interpolation linéaire ce
qui nous donne les sommets de la facette recherchée sur chaque tétraèdres.
2. Notions de base
Pour implémenter l'algorithme du Marching Tetrahedra, nous avons utilisé plusieurs notions.
Présence d'intersection entre un cube/tétraèdre et une surface implicite :
Soient Si, i=1,..,n les sommets d'un tel polyèdre.
On évalue les valeurs de chaque sommets avec la fonction définissant la surface. Trois cas sont à
distinguer :
●si toutes les valeurs sont positives : le polyèdre est à l'extérieur de la surface
●si toutes les valeurs sont négatives : le polyèdre est à l'intérieur de la surface
●s'il existe au moins deux valeurs de signe différents : le polyèdre intersecte la surface.
Intersection entre une arête et une surface implicite :
On utilise une interpolation linéaire avec la méthode de dichotomie.
Considérons A (évalué négativement) et B (évalué positivement) les deux extrémités de l'arête, la
méthode se présente sous cette forme :
●si le produits de deux valeurs des extrémités est positif, on s'arrête il n'y a pas d'intersection.
●Sinon,
○si
alors on s'arrête.
○sinon, on calcule le milieu M du segment [AB] et on évalue ce point avec la fonction
■si le produit de la valeur de A avec celle de M est négatif alors l'intersection
est sur [AM], et on effectue la dichotomie sur le segment [AM]
■sinon, l'intersection est sur le segment [MB], et on effectue la dichotomie sur
[MB].
Intersection d'un tétraèdre avec une surface implicite
Lorsqu'on a déterminé la présence d'intersections entre la surface et le tétraèdre, on calcule ces
points via la méthode de dichotomie, au niveau de chaque arête du tétraèdre. Il y a deux cas
possibles : soit la facette obtenue est un triangle soit un quadrilatère.
Il ne reste plus qu'à orienté la face correctement.