Lissage d'un objet 3d :: subdivision

Description

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'affichage 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
  • ...

Conclusion :


Sont joint 8 fichiers 3D au format OBJ pour pouvoir tester le programme directement

vous avez besoin pour compiler le code de la librairie VBOgl.tlb ::

http://www.vbfrance.com/article.aspx?Val=1147

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.