Calculer la distance entre deux vertex d'un objet sous Blender

par | 28 Avr 2016

Au collège, on apprend à calculer la distance entre deux points dans un espace dit « euclidien » (la norme du vecteur formé par ces deux points, peut importe le nombre de dimensions de l’espace). Le plus court chemin entre deux points dans cet espace est un une ligne « droite » (enfin, en 3D tout du moins). Toutefois, si vous avez fait un peu de relativité générale par exemple, vous avez appris à travailler avec les espaces courbes. En relativité générale, l’espace est courbé par la masse. Ainsi, la terre suit une trajectoire rectiligne dans un espace courbée par le soleil. Bon, c’est une façon de présenter les choses. Mais quel rapport avec la 3D me direz-vous  ?

Le problème revient au même lorsqu’il faut calculer la distance entre deux points sur une sphère par exemple. Comme la sphère est un objet « idéal » et simple, c’est relativement facile à trouver. Mais qu’en est-il s’il s’agit d’une surface comme un paysage déformé par une Heightmap ? Au passage, le trajet « courbe » passant d’un point à un autre dans un espace non-euclidien (comme la surface d’un objet non-platj) est appelé une géodésique.

Patmo141 a travaillé sur un script python qui permet de calculer la distance entre 2 points sur un mesh.

Il s’agit d’une fonction « geodesic_walk » qui parcours le mesh d’un point A à un point B en utilisant un système de plusieurs itérations. Cela rappelle beaucoup l’algorithme en A* que l’on utilise pour faire du pathfinding: La surface de l’objet peut-être assimilée à un mesh des navigation. En tous cas, si je devais créer cela très vite, c’est l’algo que j’utiliserai. Mais peut-être l’auteur du script a préféré explorer d’autres pistes vu les lectures accompagnant son travail (ci-après).

D’ailleurs son algorithme semble calculer à l’avance des « flux » de mouvement comme l’illustre la photo ci-après:

Capture d'écran 2016-04-26 10.38.56

C’est probablement une sorte de « cache » permettant d’accélérer les calculs durant les différentes itérations. A la fin de la vidéo, il fait le test sur Suzanne et reste surpris que l’algorithme passe par le sourcil au lieu d’aller tout droit vers les front. Erreur d’algo ou véritablement plus court chemin ? Il n’est pas toujours évident d’avoir le résultat escompté.

Bref, sujet très intéressant si vous vous intéressez aux calculs en 3D, moins sinon.

Vous trouverez un exemple à télécharger ici, ainsi que de la documentation:

Cette deuxième vidéo montre comme utiliser rapidement le plugin, avec un dessin en temps-réel de la géodésique:

Vous pouvez aussi suivre le thread sur BlenderArtists.org

 

Découvrez nos derniers numéros !

0 commentaires

Laisser un commentaire

Ces articles pourraient aussi vous intéresser …