Donc voila une source permettant de lisser un objet 3D!
Petite explication, cet algo permet d'obtenir à partir d'un objet définit par quelques faces un objet plus lisse, très util en modélisation, le graphiste modélise rapidement un objet et applique ensuite l'algorithme et hop il se retrouve avec un objet plus lisse
Il y'a d'autres applications utiles à cela :
Dans les jeux par exemple, un personnages 3D est définit par un ensemble de points restrincts dans un fichier, le jeux applique la subdivision au chargement de ce fichier et hop on se retrouve avec un personnage 3D parfaitement bien définit, au résultat on a fait une économie au niveau de la taille du fichier :)
Donc la subdivision peut également être un outils important pour la compression de modéle en 3D, la compression est utile dans le cas ou le modele est transmis via internet!
Toujours dans le cas des jeux, le décors peut être affiné suivant la distance a la caméra > "subdivision adaptative"
Il existe de nombreux principe de subdivision Catmull-Clarck, Butterfly, Loop, Doo-Sabin
Cependat l'algo présent est directement de moi, j'ai deja déposé une source traitant des subdivisions de courbes sur ce site et utilisant le même principe mais à une dimension inférieure :: http://www.vbfrance.com/article.aspx?Val=9152
Si vous voulez vraiment voir ce que cela donne :: Capture d'écran
Une autre image ici :: http://geffd.free.fr/Coding/Sub3D2.jpg
L'affichag e est en opengl, donc y'a d'autres fonctions a l'interieur :
*Calcul de la normale à une face
*Calcul de la normal en "per vertex lighting"
*Calcul de l'autozoom
*Ouverture d'un fichier OBJ
*...