Champs

Fondamentalement, un champ est une fonction: un ensemble d’instructions qui peut transformer un nombre arbitraire d’entrées en une seule sortie. Le résultat d’un champ peut ensuite être calculé plusieurs fois avec différentes données d’entrée. Ils sont utilisés sur tous les nœuds de la géométrie pour permettre des calculs qui ont des résultats différents pour chaque élément (sommets de maillage, faces, etc.).

../../_images/modeling_geometry-nodes_fields_title.png

Un champ d’entrée vers un nœud.

Par exemple, dans la figure ci-dessus, le champ connecté au nœud “Set Position” dépend de deux entrées, Position et Index et les transforme en un vecteur à l’aide d’une seule instruction.

Visualisation de Champ

Les formes de socket sont utilisées pour indiquer quels sockets sont des champs et lesquels sont des données régulières. Il existe trois formes de sockets possibles, chacune visualisant son “field status” (état du champ):

Circle (Cercle)

Le socket nécessite une seule valeur réelle, il ne peut pas accepter une entrée de champ. Pour les sockets de sortie, cela signifie que le nœud sort toujours une seule valeur.

Losange

Le socket peut accepter une entrée de champ ou il génère un champ. Une valeur unique constante peut être connectée à ces prises, mais la sortie ne variera souvent pas par élément.

Losange avec un pointt

Le socket peut être un champ, mais il s’agit actuellement d’une valeur unique. C’est utile car il permet de suivre où des valeurs uniques sont calculées, au lieu d’un champ avec de nombreux résultats différents. Cela signifie également qu’une Inspection de socket affichera la valeur au lieu des noms des entrées de champ.

../../_images/modeling_geometry-nodes_fields_constant.png

La forme du socket est un losange avec un point, ce qui signifie que le champ a la même valeur pour chaque élément. Chaque point sera déplacé vers le haut de 5 m.

../../_images/modeling_geometry-nodes_fields_varying.png

La forme du socket est un losange et l’entrée de champ a maintenant une entrée variable. En d’autres termes, la valeur peut être différente pour chaque élément. Dans ce cas, la position sera doublée, puisque le décalage pour chaque point est la position du point.

Astuce

Il est souvent souhaitable d’extraire une seule valeur d’un champ. Bien que cela n’ait pas de sens conceptuellement de simplement changer un champ en une valeur unique, le Nœud Transfer Attribute en mode Index ou le Nœud Attribute Statistic peut être utilisé pour récupérer une valeur unique à partir d’un champ évalué sur une géométrie.

Lorsqu’une connexion est établie entre deux sockets de nœud qui prennent en charge les champs, la connexion de nœud sera dessinée sous la forme d’une ligne pointillée. Si vous faites l’erreur de connecter une prise non-field à une prise field, la connexion sera tracée sous la forme d’une ligne rouge continue indiquant qu’il y a une erreur.

Types de nœud

Les nœuds peuvent être séparés en deux catégories: les nœuds de flux de données qui passent généralement par la géométrie et les nœuds de champ qui fonctionnent sur les données par élément. Les nœuds de champ peuvent être des nœuds d’entrée qui apportent des données géométriques dans l’arborescence de nœuds ou des nœuds de fonction qui opèrent sur ces données.

Les nœuds de flux de données

Les nœuds avec une entrée et une sortie de géométrie seront presque toujours des nœuds de flux de données. Cela signifie qu’ils modifient réellement les données géométriques qui seront sorties de à partir du modificateur Nœuds géométriques.

Les nœuds de fonction

Les nœuds avec des entrées et des sorties de socket losange sont des nœuds de champ et ressemblent aux instructions qui seront évaluées par les nœuds de flux de données. Des exemples de nœuds de fonction sont les nœuds mathématiques et également des nœuds plus complexes comme le Nœud Geometry Proximity.

Les nœuds Input

Les nœuds d’entrée fournissent des données au processus d’évaluation sur le champ. En eux-mêmes, ils ne signifient rien; ils doivent être évalués dans le contexte d’un nœud de flux de données (géométrie) pour produire réellement une valeur. Des exemples de nœuds d’entrée sont les nœuds d’entrée d’attributs intégrés comme Position et ID, mais aussi les nœuds de sélection comme Endpoint Selection.

Les entrées de champ peuvent également provenir d’autres nœuds qui traitent la géométrie comme le Nœud Distribute Points on Faces, sous la forme d'Attributs anonymes.

Contexte du champ

Tous les nœuds de champ fonctionnent dans le contexte du nœud de flux de données auquel ils sont connectés. Le contexte se compose généralement d’un type de composant géométrique et d’un domaine attribut, il détermine donc quelles données sont extraites des nœuds d’entrée.

Un malentendu courant est que la même arborescence de nœuds de champ utilisée à plusieurs endroits produira les mêmes données. Ce n’est pas nécessairement vrai, car l’arborescence des nœuds de champ sera évaluée pour chaque nœud de flux de données, en récupérant potentiellement des données à partir d’une géométrie différente ou modifiée.

../../_images/modeling_geometry-nodes_fields_flow-1.png

Ici, le champ de saisie du nœud Set Position est évalué une fois. Pour évaluer le champ, le nœud parcourt en arrière pour récupérer les entrées des nœuds d’entrée de champ.

../../_images/modeling_geometry-nodes_fields_flow-2.png

Lorsqu’un deuxième nœud Set Position est ajouté, la même arborescence de nœuds de champ est évaluée deux fois, une fois pour chaque nœud de flux de données. Au deuxième nœud Set Position, les résultats seront différents puisque son entrée de géométrie aura déjà la position modifiée par rapport au premier nœud.

../../_images/modeling_geometry-nodes_fields_flow-3.png

Cependant, il est souvent nécessaire d’utiliser les mêmes valeurs de champ même après avoir modifié la géométrie. Le Nœud Capture Attribute évalue un champ, en copiant le résultat dans un attribut anonyme sur la géométrie.

Ici, un nœud Capture Attribute stocke une copie de la position initiale. Notez que l’évaluation de l’entrée de champ du nœud Capture Attribute est une étape entièrement différente. Plus tard, les champs de saisie des nœuds Set Position n’utilisent pas la position réelle, mais la copie de l’attribut anonyme de celle-ci.