distribution de n-points sur une sphère
Le samedi 20 septembre 2008 à 16:18 :: Flash-AS3 :: #50 :: rss :: 2624 lectures
et hop! un algorithme de répartition de N-points sur une sphère.
ça peut rendre service.
dans les moteurs 3D, un truc nul c'est de pas avoir de geoshpere.
une géosphère ça ressemble à ça (dans 3DSMAX, désolé pour la photo pourrie):

c'est composé uniquement de triangles réguliers et les triangles c'est bien.
par opposition à la sphère toute conne(re désolé pour l'image pourrie)

or dans flash en 3d (je sais pas trop en fait mais je crois qu') on a seulement des sphères toutes connes et c'est nul.
on peut créer une sphère à partir d'un nombre de segments en hauteur et d'un nombre de 'tranches'.
Mais souvent au boulot la question c'est de pouvoir disposer X points en sphère pour pouvoir y accrocher ce qu'on veut (des images en général).
hier matin au petit déjeuner je suis tombé là dessus: nodename
où le gars fait précisément le truc en question.
et hier matin en arrivant au boulot, mon DA adoré et mon CP préféré me sont tombés dessus paniqués en me demandant si je connaissais quelqu'un qui saurait faire une sphère en 3D... >_>... à moi ...
j'ai appelé le canard parce qu'il touche son slip en 3D mais comme il était pas dispo je leur dis: j'ai vu un truc ce matin qui devrait faire la blague, mais vu que le gars ne file pas les sources, va falloir porter l'algo depuis le C++. j'essaie ça cet après midi et si c'est concluant je me tape le boulot.
ce qui fut dit fut fait et en fin de journée j'arborais fièrement mon portage (oui j'ai aucun mérite, je sais).
la technique est basée sur un système de spring qui repousse et attire chaque vertex les un vers les autres. c'est une histoire de normalisation des distances. on s'en fout mais ça marche.
et hop ! la démo qui troue le slip (hum):
la source:
le zip de cette démo de ouf
du coup le zip contient une version simplifiée et super pas commentée de mon incroyable moteur de particules 3D ( tu risques d'être déçu(e)).
bon y a pas grand chose à dire, les liens fournis par nodename en disent suffisamment long. si j'ai modifié l'algo pour qu'on lui passe la liste de vertex et un seuil max de récursions. il retourne la liste de vertex ordonnés. gentiment.
plus il y a de récursions, plus c'est long mais plus le résultat est nice. sur la démo il y en a 10 à chaque ajout de point. c'est un bon compromis perf/rendu
un autre truc, l'algo réduit les distances de chaque vertex à une fraction de 1 donc après avoir appliqué le calcul, il faut resizer les vertices. rien de bien méchants mais c'est à noter.
j'espère que ça te servira.
copains
Commentaires
1. Le samedi 20 septembre 2008 à 19:15, par Tek
2. Le samedi 20 septembre 2008 à 22:23, par ali_o_kan
3. Le samedi 20 septembre 2008 à 23:20, par fab
4. Le mercredi 24 septembre 2008 à 10:43, par ynk
5. Le jeudi 2 octobre 2008 à 15:21, par Tim Soret
6. Le jeudi 2 octobre 2008 à 15:59, par nicoptere
7. Le vendredi 3 octobre 2008 à 13:25, par Tim Soret
8. Le dimanche 12 octobre 2008 à 13:02, par gludion
9. Le lundi 15 décembre 2008 à 23:36, par fidiman
10. Le mardi 16 décembre 2008 à 14:02, par nicoptere
11. Le mardi 16 décembre 2008 à 21:45, par tartiflop
Ajouter un commentaire