Se connecter

Informatique

Programmation

Sujet : Arbre CSG et Marching Cube
1
Fvirtman
Niveau 10
31 octobre 2006 à 11:09:44

Voila un petit moment que je voulais implémenter ce bel algo qu´est le marching cube.
http://perso.numericable..fr/~fvirtman/progs/mcubes.zip

Le principe est simple : vous définissez mathématiquement l´espace par des volumes de bases.
Par exemple, vous dites que vous voulez une sphere de tel rayon a un endroit de l´espace.
Vous dites que vous voulez ajouter un Cone.
Vous dites enfin que vous voulez retrancher un cylindre (c´est a dire que vous posez dans l´esapce un cylindre invisible qui enleve la matiere)
Ainsi, par exemple, un cube troué, c´est un cube moins un cylindre.

Et pour un point x,y,z donné, vous savez si vous etes dans la matiere ou non.
Cela est sommairement l´arbre CSG.

Le marching cube est l´algo qui, a partir d´une fonction qui dit, a x,y,z donné, si on est dans la matiere ou non, vous pond une triangulation.
La finesse de la triangulation peut etre réglée.

Voici une petite implémentation de cela (une premiere version), regardez juste le main pour comprendre comment ça fonctionne ! et les autres fichiers pour voir le détail...

guyver2
Niveau 10
31 octobre 2006 à 21:25:53

c´est le principe du logiciel povray non?
J´ai vu (en surface) ça en licence, c´est le dernier mode de représentation qu´on a abordé dans un cours d´intro a la synthese d´image. J´avoue que c´est pas une representation qui me parait intuitive, peut-etre pourras-tu m´informer sur l´interet de se mode de representation par rapport a d´autre (gain de place, vitesse de traitement,...)

novembre
Niveau 16
31 octobre 2006 à 22:29:02

C´est ce qu´il me semblait concernant le ray tracing, ca optimise donc bien les calculs.

kufa
Niveau 9
31 octobre 2006 à 23:19:57

LGV avait fait un bon document/implementation des marching cubes, mais je suis sur qu en voyant le titre du poste il viendra par ici.
Enfin bon, on peut mieux faire au niveau optim :P (vive les marching cubes sur whirpool 1200)

Fvirtman
Niveau 10
01 novembre 2006 à 12:31:48

Vi, au niveau optim, j´ai pas encore bien optimisé : pour chaque cube, je recalcule ses 8 sommets, alors que quand je passe au suivant, j´aurais pu garder le résultat précédent !
Voir calculer tous les points une fois pour toutes, mais bon, pour le moment, c´est un premier jet :)

Fvirtman
Niveau 10
01 novembre 2006 à 12:32:39

guyver2 > La représentation CSG est idéale pour tout ce qui est lancer de rayon en effet ! :-)

1
Sujet : Arbre CSG et Marching Cube
   Retour haut de page
Consulter la version web de cette page