triangulation de Delaunay et diagrame de Voronoï #2
Le mardi 9 septembre 2008 à 16:48 :: Flash-AS3 :: #49 :: rss :: 3869 lectures
Comme je le disais plus haut, j'ai mis un an à porter cet algo à la con.
d'une part parce que je suis pas trop matheux, d'autre part parce que c'est une belle saloperie malgré son apparente simplicté ^^
L'an passé, je m'ennuyais au bureau en Hongrie et je m'étais lancé dans un générateur de formes vivantes primaires. le problème s'est posé au niveau du noyau, je voulais que ça ressemble aux amas de cellules ou aux coupes des fibres des arbres
mettons
ou bien ça :
enfin un truc organique quoi ...
donc en faisant des recherches je tombe sur le travail de flight404 : flight 404.
et ses papillons imaginaires qui utilisaient le diagramme de Voronoï voronoï butterflies. autant dire que ça balance du slipu. son boulot est vraiment très chouette même s'il tourne un peu en rond depuis un temps.
Donc j'ai voulu le refaire et j'y suis pas arrivé vu que j'étais trop mauvais et j'avais pas le niveau.
En début d'année, on discutait avec Didier Brun de trianguler une image et donc je lui reparle de mon échec cuisant à implémenter la triangulation de Delaunay tout en vantant les mérites du procédé et combien c'était touchy et important de faire ça bien.
Il a été très intéressé et je lui ai montré un peu les recherches qu j'avais faites et il s'est arrêté sur l'algo de Paul Bourke en particulier parce qu'il le lâche en C# ce qui est sympa de sa part.
Après quoi il a fallu 4heures à Didier pour le porter ce qui est assez déprimant.
donc il m'a bien fait baver avec sa démo mais il ne m'a pas filé les sources (je les ai pas demandées non plus ...
) mais ça m'a montré que c'était possible. Donc je me suis lancé et HOP! :
(click pour faire des points, et reset pour... reseter)
et pan les classounettes:
Du coup j'ai aussi implémenté le diagrame de Voronoï (c'est juste trop beau):
en fait il y a eu un post de Keith Peters où il disait qu'il aimerait bien comprendre comment on faisait le diagramme donc j'ai fait un billet sur mon blog en anglais(oui ça fait un peu schyzo d'avoir un blog en deux langues mais je tiens à bien séparer les choses ^^) et comme Keith Peters aime bien quand ça bouge, je lui ai collé un bouton animate que même si t'es pas Keiith Peters tu peux appuyer dessus.
c'était histoire de dire que quand il n'y a pas trop de points, ça se rend assez vite.
bon à quoi ça sert?
- créer et optimiser des maillages 2D ( et 3D)
- créer des maillages robustes, à savoir qu'il n'auront pas de vertices inutiles qui font que les modèles s'effondrent sur eux mêmes. c'est un peu comme les surfaces minimales en architectures (les autotendus par exemple)
- on peut modéliser des cellules vivantes, des fibres de bois, des bulles, de la terre qui se craquelle, de la peau et plein de textures procédurales
- créer des modèles robustes en 2D ce qui permet de les utiliser dans des moteurs physiques(est ce que tu entrevois la combinaison avec la squelettisation là?.. non, toujours pas?)
- créer des modèles 2.5D à coller dans un moteur 3D
- et puis avec le player 10 qui drawTriangles... on devrait bien s'amuser ^^
Pour de vrai je m'en sers déja dans un projet top secret de la NASA sur lequel on bosse en ce moment et ça marche bien.
Tiens vla un exemple d'application pompé sur cette vidéo merci starmonkey
la photo vient de http://www.behance.net/JonDay
ça peut rendre ça en wireframe (si t'as un DA talentueux dans ton bureau):

ou en flat (la couleur est prélevée au centre du triangle)

ou encore en shaded (le dégradé prend la couleur du sommet le plus à gauche, la couleur du centre du triangle et la couleur du sommet le plus à droite) :

ça me fait mal mais je suis obligé de remercier grandement Didier.
Grâce à lui je n'ai plus (trop) peur de m'attaquer à des algos dans d'autres langages ( comme par exemple le scaleX ou la squelettisation). un mot pour finir.
Les opérateurs morpomathématiques, en plus d'avoir un nom compliqué permettent de trouver automatiquement les feautres importantes d'une image. on peut donc imaginer un algo qui retrouve le visage puis triangule l'image automatiquement. les triangles ont vraiment plein de propriétés intéressantes, pour la 2D et la 3D. ne l'oublions pas.
pour la route, et comme il n'est pas interdit de rêver,
regardes donc ça (tout part d'une triangulation
)
copains
Commentaires
1. Le mercredi 10 septembre 2008 à 10:04, par ynk
2. Le jeudi 11 septembre 2008 à 06:39, par jeanphilippe
3. Le jeudi 18 septembre 2008 à 11:24, par kiroukou
4. Le jeudi 18 septembre 2008 à 19:29, par nicoptere
5. Le vendredi 19 septembre 2008 à 09:01, par Shiva
6. Le dimanche 6 septembre 2009 à 00:21, par jean-michel
Ajouter un commentaire