Экземпляры (instances)

../../_images/modeling_geometry-nodes_instances.png

Три типа экземпляров.

В дополнение к хранению реальных данных, таких как меш или кривая, геометрия может хранить экземпляры, которые сами по себе могут ссылаться на другую геометрию, объект или коллекцию. Цель создания экземпляров – позволить включить в результат гораздо больше геометрии, не дублируя фактические данные. Это связано с тем, что средство визуализации, такое как Cycles, может обрабатывать одни и те же данные геометрии во многих разных местах лучше, чем когда данные дублируются.

Каждый экземпляр отслеживает геометрию, которой он соответствует и как этот экземпляр трансформируется в сравнении с исходной геометрией. Экземпляры также могут хранить атрибут id, который используется для коррекции размытия движения, когда экземпляры движутся в анимации.

Экземпляры можно создавать с помощью геометрических нод, используя ноду Instance on Points.

Предупреждение

В настоящее время создание экземпляров из геометрических нод нельзя смешивать с созданием экземпляров из панели Instancing в редакторе свойств.

Вложенный экземпляр

Поскольку экземпляры могут хранить геометрию, а геометрия может содержать экземпляры, возможно создание вложенных экземпляров. Другими словами, можно создавать экземпляр экземпляра или даже набор экземпляров. По умолчанию нода Instance on Points создаёт вложенные экземпляры путём создания экземпляров в точках реальной геометрии.

../../_images/modeling_geometry-nodes_instances-nested.png

Группа нод, которая создаёт вложенные экземпляры путём соединения нод Instance on Points.

Здесь вложенное создание экземпляров используется для распределения геометрии, которая содержит как меш, так и экземпляры. Выходная геометрия содержит «настоящий» меш и группу экземпляров. Каждый экземпляр содержит меш-сферу и множество экземпляров геометрии конуса.

../../_images/modeling_geometry-nodes_instances-nested-tree.png

Дерево созданных экземпляров геометрии для приведённого выше примера.

Этот метод полезен тем, что выходная геометрия содержит только три уникальные меша: плоскость, сферу и конус. Это значительно повысило бы производительность, если бы меши были сложнее.

Предупреждение

Для рендеринга и просмотра во вьюпорте поддерживаются только восемь уровней вложенных экземпляров. Хотя более глубокие деревья экземпляров могут быть созданы внутри геометрических нод – они должны быть реализованы в конце дерева нод.

Реализация экземпляров

Термин «реализовать» экземпляры относится к преобразованию экземпляров в уникальную геометрию. Когда экземпляры реализованы, они занимают больше памяти, манипуляции с геометрией придётся выполнять индивидуально, а не один раз для каждого созданного экземпляра геометрии.

Для реализации экземпляра используйте ноду Realize Instances.

Обработка экземпляра

Почти все ноды, обрабатывающие геометрию, делают это, обрабатывая не реализованную геометрию, а каждую уникальную геометрию отдельно. Например, если бы нода Subdivision Surface была помещена в конец – в приведённом выше примере, – ей пришлось бы подразделить только три меша, а не каждый экземпляр меша. Другим важным примером является обработка с выходными данными ноды String to Curves, где каждый уникальный символ должен быть обработан только один раз.

Этот метод может значительно повысить производительность, но это означает, что результат операции будет одинаковым для каждого экземпляра определённой геометрии. Чтобы получить уникальные результаты для каждого экземпляра, можно использовать ноду Realize Instances.