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.).
For example, in the figure above, the field connected to the « Set Position » node depends on two inputs, Position and Index, and transforms them into a vector using a single 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
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.
Astuce
Often it is desired to extract a single value from a field. While it doesn’t make sense conceptually to simply change a field into a single value, the Transfer Attribute Node in Index mode or the Nœud Attribute Statistic can be used to retrieve a single value from a field evaluated on a geometry.
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 Data Flow
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 Function
Nodes with diamond socket inputs and outputs are field nodes, and resemble the instructions that will be evaluated by data flow nodes. Examples of function nodes are the math nodes and also more complex nodes like the Nœud Geometry Proximity.
Les nœuds Input
Input nodes provide data to the field evaluation process. By themselves, they mean nothing; they must be evaluated within the context of a data flow node (geometry) to actually output a value. Examples of input nodes are the built-in attribute input nodes like Position and ID, but also selection nodes like 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.
Here, the Set Position node’s input field is evaluated once. To evaluate the field, the node traverses backwards to retrieve the inputs from the field input nodes.
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.
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.