Нодовые связки (node bundles)

Связка“ – это контейнер, позволяющий группировать несколько значений в одном сокете. Эта функциональность позволяет передавать несколько значений через одно соединение, аналогично «struct» в программировании.

Связки сокращают количество входов и выходов, представленных в группе нод, и могут содержать различные типы данных, такие как геометрия, поля, значения, объекты или даже вложенные пакеты.

../../../../_images/interface-nodes-bundle-example.png

Куб и цилиндр объединяются в связку, затем снова разделяются.

Ноды (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 может предложить их автоматическую синхронизацию.

  • Синхронизация происходит автоматически при первом соединении ноды.

  • Существующие сокеты никогда не обновляются автоматически, чтобы избежать перезаписи данных.

  • При обнаружении несоответствия, – на ноде появляется кнопка синхронизации , позволяющая выполнить данное действо вручную.