Нодовые связки (node bundles)¶
„Связка“ – это контейнер, позволяющий группировать несколько значений в одном сокете. Эта функциональность позволяет передавать несколько значений через одно соединение, аналогично «struct» в программировании.
Связки сокращают количество входов и выходов, представленных в группе нод, и могут содержать различные типы данных, такие как геометрия, поля, значения, объекты или даже вложенные пакеты.
Куб и цилиндр объединяются в связку, затем снова разделяются.¶
Ноды (nodes)¶
Для работы со связками предусмотрены следующие ноды:
Bundle nodes allow adding or removing an arbitrary number of sockets, with flexible type support.
Bundles can be attached to geometry using get/set geometry bundle nodes. These can be used to pass bundled data between modifiers and objects.
Typed Bundles¶
A typed bundle is a bundle that contains a special Type item identifying its purpose. The type is stored as a string and allows node groups to recognize bundles without relying on their internal structure.
Using types makes bundles easier to exchange between node groups and different Geometry Nodes modifiers, since a node group can search for a specific type rather than assuming a particular bundle layout.
Bundles can also contain other bundles, allowing complex data to be organized hierarchically.
Creating Typed Bundles¶
The Add Typed Bundle operator creates a typed bundle by constructing a bundle containing the required Type item.
Важно
The string item named Type is reserved for identifying typed bundles.
It should not be used for any other purpose within a bundle.
Searching Typed Bundles¶
The Get Nested Bundle Paths node searches a bundle hierarchy for bundles with a matching type.
This allows node groups to locate typed bundles even when they are nested inside other bundles.
For example, a geometry may contain multiple bundles describing different components. A node group can search for all bundles of a particular type without requiring them to exist at a fixed location.
Использование¶
Связки полезны во многих рабочих процессах:
Упрощение интерфейса – позволяют группировать входы в одном сокете.
Симуляции физики – позволяют упаковывать все сущности и ограничения для решателя.
Декларативные системы – позволяют сохранять комплексные структуры данных для последующей оценки.
Наборы текстур – позволяют объединять PBR-карты (основной цвет, шероховатость, нормаль) в одном сокете.
Синхронизация сокетов¶
Для сопоставления своих входов и выходов связки используют имена сокетов. Если две ноды-«связки» соединены, но имеют несовпадающие сигнатуры, – Blender может предложить их автоматическую синхронизацию.
Синхронизация происходит автоматически при первом соединении ноды.
Существующие сокеты никогда не обновляются автоматически, чтобы избежать перезаписи данных.
При обнаружении несоответствия, – на ноде появляется кнопка синхронизации , позволяющая выполнить данное действо вручную.