- Rafafouille
Comment créer un "champ de vecteurs" avec des Geometry Nodes ?
Dim 29 Sep - 15:54
Bonjour,
Je suis à la recherche d'une solution (ou d'une piste) pour réaliser un champ de vecteur.
Un champ de vecteur, pour faire simple, c'est plein de flèches, qui partent de différents points de l'espaces (par exemple : depuis chaque sommet d'un maillage, de coordonnées x,y,z), et dont les composantes dépendent des coordonnées (x,y,z) du point de départ. Par exemple comme ça : https://www.geogebra.org/resource/urpf3svm/HPuGIaEtSYTgzuQ5/material-urpf3svm.png
Il s'agit donc de créer plein de flèches, toutes différentes, mais répondant à une équation mathématique (simple).
Je suis débutant en "geometry nodes", mais il me semble que c'est une bonne piste.
J'ai déjà réussi à créer une flèche (à partir d'un vecteur en entrée. Je me suis inspiré de cet exemple : https://i.sstatic.net/zRe4Y.png ) et j'ai réussi à le dupliquer avec le node "Instance on Points" en m'appuyant sur un maillage.
Mon problème : Le fait de créer ma flèche avant duplication fait que toutes les flèches sont identique. Est-il possible de créer chaque flèche APRES avoir défini leurs position ?
Auriez-vous au moins une piste que je pourrais explorer ?
Merci d'avance pour votre aide et vos conseils.
Je suis à la recherche d'une solution (ou d'une piste) pour réaliser un champ de vecteur.
Un champ de vecteur, pour faire simple, c'est plein de flèches, qui partent de différents points de l'espaces (par exemple : depuis chaque sommet d'un maillage, de coordonnées x,y,z), et dont les composantes dépendent des coordonnées (x,y,z) du point de départ. Par exemple comme ça : https://www.geogebra.org/resource/urpf3svm/HPuGIaEtSYTgzuQ5/material-urpf3svm.png
Il s'agit donc de créer plein de flèches, toutes différentes, mais répondant à une équation mathématique (simple).
Je suis débutant en "geometry nodes", mais il me semble que c'est une bonne piste.
J'ai déjà réussi à créer une flèche (à partir d'un vecteur en entrée. Je me suis inspiré de cet exemple : https://i.sstatic.net/zRe4Y.png ) et j'ai réussi à le dupliquer avec le node "Instance on Points" en m'appuyant sur un maillage.
Mon problème : Le fait de créer ma flèche avant duplication fait que toutes les flèches sont identique. Est-il possible de créer chaque flèche APRES avoir défini leurs position ?
Auriez-vous au moins une piste que je pourrais explorer ?
Merci d'avance pour votre aide et vos conseils.
- busanga
Re: Comment créer un "champ de vecteurs" avec des Geometry Nodes ?
Dim 29 Sep - 19:13
Salut @Rafafouille, et bienvenue sur la tribu, ça fait un nouveau matheux je vois
Par définition, quand tu utilises les instances, tu dupliques le même objet (tu ne peux pas choisir un mesh ou l'autre suivant l'endroit où il est dupliqué), mais tu peux tourner et agrandir les copies individuellement, voici un exemple où j'instance la géométrie de la flèche et la modifie en fonction de sa position sur la grille (juste, la copie d'écran des GN correspond pas exactement au résultat, faut débrancher le Z du Combine XYZ qui sert de Scale en bas, j'étais parti sur un exemple avec un réseau en 3 dimensions, mais c'était moins lisible, je pense que tu t'y retrouveras). Le mesh de la flèche qui est appelé est celui en bleu sur la capture, la géométrie sur laquelle est placé le GN est la grille que tu vois en Edit Mode :
L'inconvénient que tu trouveras peut-être à cette solution, c'est que tu voudrais que la longueur des flèches change, mais pas leur épaisseur, dans ce cas une piste est de dupliquer des objets de type Curve (des Curve Lines en l'occurrence) et de les convertir en mesh après l'instanciation :
Je suis pas allé au bout du truc, faudrait trouver le moyen de placer les pointes des flèches, mais ça te fait déjà une base de réflexion.
Par définition, quand tu utilises les instances, tu dupliques le même objet (tu ne peux pas choisir un mesh ou l'autre suivant l'endroit où il est dupliqué), mais tu peux tourner et agrandir les copies individuellement, voici un exemple où j'instance la géométrie de la flèche et la modifie en fonction de sa position sur la grille (juste, la copie d'écran des GN correspond pas exactement au résultat, faut débrancher le Z du Combine XYZ qui sert de Scale en bas, j'étais parti sur un exemple avec un réseau en 3 dimensions, mais c'était moins lisible, je pense que tu t'y retrouveras). Le mesh de la flèche qui est appelé est celui en bleu sur la capture, la géométrie sur laquelle est placé le GN est la grille que tu vois en Edit Mode :
L'inconvénient que tu trouveras peut-être à cette solution, c'est que tu voudrais que la longueur des flèches change, mais pas leur épaisseur, dans ce cas une piste est de dupliquer des objets de type Curve (des Curve Lines en l'occurrence) et de les convertir en mesh après l'instanciation :
Je suis pas allé au bout du truc, faudrait trouver le moyen de placer les pointes des flèches, mais ça te fait déjà une base de réflexion.
- busanga
Re: Comment créer un "champ de vecteurs" avec des Geometry Nodes ?
Dim 29 Sep - 21:05
Re-
Je me dis que la solution du dessus va pas forcément être pratique pour l'exemple que tu donnes, avec une fonction f(x,y,z) qui donne les coordonnées (X,Y,Z) des vecteurs, ça se prêterait mieux à un résultat en coordonnées sphériques. Du coup je me dis que tu aurais sans doute des résultats plus intéressants en te penchant sur les scripts Python.
Je me dis que la solution du dessus va pas forcément être pratique pour l'exemple que tu donnes, avec une fonction f(x,y,z) qui donne les coordonnées (X,Y,Z) des vecteurs, ça se prêterait mieux à un résultat en coordonnées sphériques. Du coup je me dis que tu aurais sans doute des résultats plus intéressants en te penchant sur les scripts Python.
- Rafafouille
Re: Comment créer un "champ de vecteurs" avec des Geometry Nodes ?
Dim 29 Sep - 21:13
Merci de ta réponse !
Effectivement, je suis plus familier avec les scripts. Mais j'avantage des Geometry Nodes était d'avoir un "résultat" en direct.
Toutefois, l'exemple avec des curves me parait pas si mal... Je vais d'abord creuser dans cette direction !
Merci beaucoup.
Effectivement, je suis plus familier avec les scripts. Mais j'avantage des Geometry Nodes était d'avoir un "résultat" en direct.
Toutefois, l'exemple avec des curves me parait pas si mal... Je vais d'abord creuser dans cette direction !
Merci beaucoup.
- busanga
Re: Comment créer un "champ de vecteurs" avec des Geometry Nodes ?
Dim 29 Sep - 22:22
Tiens, finalement une base assez simple pour reproduire l'image que tu nous as fournie :
- on génère le réseau de points en 3 dimensions en dupliquant une grille sur une Mesh Line (tu peux placer le nombre de points dans un Input du GN pour pouvoir le piloter)
- on duplique une Curve Line (0,0,0)-(1,1,1) sur chaque point, toujours avec les instances (en fait (0.5,0.5,.0.5) dans cet exemple car tu peux faire une première réduction globale avec le paramètre Échelle Flèches)
- on fait intervenir la fonction f(x,y,z) en scalant chaque copie individuellement
- l'Input Geometry n'est pas utilisé, tu peux le dégager et placer le GN sur n'importe quel mesh, vu que la géométrie est entièrement générée en GN
Ça te donne juste une collection de courbes pour l'instant, pour les matérialiser il faut une conversion en mesh derrière.
- on génère le réseau de points en 3 dimensions en dupliquant une grille sur une Mesh Line (tu peux placer le nombre de points dans un Input du GN pour pouvoir le piloter)
- on duplique une Curve Line (0,0,0)-(1,1,1) sur chaque point, toujours avec les instances (en fait (0.5,0.5,.0.5) dans cet exemple car tu peux faire une première réduction globale avec le paramètre Échelle Flèches)
- on fait intervenir la fonction f(x,y,z) en scalant chaque copie individuellement
- l'Input Geometry n'est pas utilisé, tu peux le dégager et placer le GN sur n'importe quel mesh, vu que la géométrie est entièrement générée en GN
Ça te donne juste une collection de courbes pour l'instant, pour les matérialiser il faut une conversion en mesh derrière.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|