Closure¶
Le nœud Closure définit une zone qui encapsule une section réutilisable de nœuds se comportant comme une fonction. Il spécifie les entrées, les sorties et la logique interne qui peuvent être exécutées ailleurs dans l’arborescence des nœuds à l’aide d’un nœud Evaluate Closure.
Les Closures permettent aux utilisateurs de transmettre une logique procédurale personnalisée dans des groupes de nœuds, ce qui rend les outils plus modulaires et adaptables. Au lieu de dupliquer ou de modifier un groupe existant, une closure peut exposer un comportement défini par l’utilisateur tout en préservant la structure du système principal.
Une zone de closure vide.¶
Inputs¶
Les Closures définissent leurs propres entrées, qui agissent comme des paramètres pour la logique du nœud interne. Ces entrées peuvent être créées en faisant glisser la prise d’entrée vide dans une autre prise ou en ajoutant des prises manuellement dans les propriétés du nœud. Chaque entrée définit un paramètre que la fermeture peut recevoir lorsqu’elle est évaluée ailleurs.
Propriétés¶
Le nœud Closure n’a pas de propriétés fonctionnelles propres, mais son interface est configurable via l’onglet Node dans la barre latérale. Les entrées et les sorties peuvent être ajoutées, supprimées et renommées pour définir la signature de la closure.
- Sync Sockets
Met à jour le nœud actuel pour qu’il corresponde à la signature de socket des nœuds connectés. À utiliser après avoir renommé, ajouté ou supprimé des sockets.
- Define Signature
Marque la zone actuelle comme source d’une signature de closure à laquelle d’autres nœuds peuvent faire référence. Cela garantit des définitions d’entrée et de sortie cohérentes sur plusieurs instances de fermeture.
Éléments d’entrée¶
- List of input sockets
Affiche une entrée par socket défini dans la closure. Double-cliquer sur une entrée pour la renommer.
- Add Item
Ajouter un nouveau socket d’entrée à la closure.
- Remove Item
Supprime le socket d’entrée sélectionné.
- Type
Définit le type de données pour le socket sélectionné (par exemple, Float, Vector, Geometry, Object, Bundle). Pour les types de valeur, un contrôle de valeur par défaut apparaît et est utilisé lorsque le socket est dissocié.
- Shape
Définit la structure de données prise en charge par le socket d’entrée, telle qu’une valeur Single, Field ou Grid. La forme détermine la manière dont les données sont évaluées et transmises via le réseau de nœuds. Voir Socket Shape pour plus d’informations.
Éléments de sortie¶
Disponible lorsque la zone de sortie de closure est sélectionnée.
- List of output sockets
Affiche une entrée par socket défini dans la sortie de closure. Double-cliquer pour renommer.
- Add Item
Ajouter un nouveau socket de sortie à la closure.
- Remove Item
Supprime le socket de sortie sélectionné.
- Type
Définit le type de données pour le socket sélectionné (par exemple, Float, Vector, Geometry, Object, Bundle). Pour les types de valeur, un contrôle de valeur par défaut apparaît et est utilisé lorsque le socket est dissocié.
- Shape
Définit la structure de données prise en charge par le socket d’entrée, telle qu’une valeur Single, Field ou Grid. La forme détermine la manière dont les données sont évaluées et transmises via le réseau de nœuds. Voir Socket Shape pour plus d’informations.
Outputs¶
Les closures définissent des sorties qui renvoient des valeurs à l’arborescence de nœuds dans laquelle elles sont évaluées. Les sorties peuvent être créées en faisant glisser une prise de l’intérieur de la zone dans la prise vide sur la sortie de la closure ou en ajoutant des prises manuellement dans les propriétés du nœud.
Utilisation¶
Les Closures définissent une logique réutilisable qui peut être injectée dans une autre arborescence de nœuds. Elles sont couramment utilisées dans les systèmes procéduraux où une partie du comportement doit rester définie par l’utilisateur.
Les cas d’utilisation typiques incluent :
Définition d’une règle de diffusion personnalisée pour un générateur de terrain.
Décrire comment distribuer ou modifier des instances de manière procédurale.
Fournir des mappages ajustables, des évaluations de terrain ou une logique de transformation.
Utilisation de valeurs externes¶
Les Closures peuvent capturer des valeurs en dehors de leur zone. Une valeur capturée est stockée dans le cadre de la définition de la closure et reste disponible même lorsque la closure est évaluée dans un contexte différent.
Les valeurs capturées permettent de conserver des paramètres externes, tels que l’échelle, la densité ou la couleur, sans créer de sockets d’entrée explicites. Cela rend les closures plus propres et plus faciles à réutiliser dans différents arbres de nœuds.
Capture d’une valeur d’entrée externe à l’intérieur d’une closure.¶
Exemple¶
Dans un groupe de nœuds générateur de terrain, remplacer la logique de distribution de l’arborescence par un nœud Evaluate Closure.
Exposer l’entrée de closure sur l’interface du groupe.
Dans l’arborescence de nœuds principale, créer une Closure Zone et la connecter à cette entrée.
À l’intérieur de la Closure Zone, définir la logique de placement de l’arbre souhaitée.
Lorsque le générateur évalue la closure, la distribution personnalisée définie dans la zone est exécutée à la place du comportement par défaut.
Une Closure Zone définissant un modèle de distribution personnalisé pour la diffusion des arbres.¶