Работа
November 15

001 \\\ Cube Deletion Society

Дисклеймер

Текст предназначен прежде всего для архвиза и сложных сцен, содержащих тысячи разнородных объектов — BIM‑модели зданий, импорт из 3ds Max, Revit/ArchiCAD, малые архитектурные формы с множеством мелких деталей. Проблемы описаны именно для этих случаев: Blender пока слабо переносит сцены с очень большим количеством отдельных объектов.


Основные проблемы

1. Импорт больших моделей

Корень проблемы — инициализация каждого объекта в depgraph. Когда вы импортируете сцену с тысячами элементов, Blender должен:

  • создать отдельный ID‑data блок на каждый объект;
  • зарегистрировать каждый объект в графе зависимостей;
  • пересчитать связи между ними (transform → modifiers → constraints → drivers → visibility);
  • проинициализировать оценку (evaluation) для каждого элемента.

Чем больше объектов, тем дольше строится граф. Порог в ~5–7 тыс. объектов уже заметен, после 20–30 тыс. зависание становится почти гарантированным.

Поэтому импорт «плоской» BIM‑сцены из тысяч автономных элементов — худший кейс для архитектуры Blender.

2. Замедление работы во вьюпорте

Большое количество объектов (десятки тысяч) вызывает сильные тормоза. Обычное объединение через Ctrl+Jработает на сотнях объектов, но на тысячах может занимать десятки минут и даже часы.

3. Проблемы с удалением

Удаление десятков тысяч объектов почти гарантированно вызывает зависание.


Причина всех проблем

Все описанные тормоза связаны с Dependency Graph (depgraph) — ключевым механизмом Blender. Это не ошибка и не временная недоработка, а фундаментальная часть архитектуры. Изменить поведение невозможно без переписывания Blender с нуля, поэтому нужно адаптироваться. Хорошая новость: обходные решения существуют.


Решения

1. Быстрый импорт — через Link

Вместо обычного импорта используйте File → Link. Процесс происходит быстро, Blender не зависает и не нагружает depgraph.


2. Ускорение работы — Geometry Nodes и Realize Instances

Почему это работает: геоноды выполняются вне depgraph. Blender воспринимает ваш объект с модификатором как один единственный элемент сцены, а всё содержимое коллекции обрабатывается внутри вычислительного ядра нод.

Это ключевое отличие: 10 000 объектов в геонодах ≠ 10 000 объектов в сцене.

Что делает Collection Info

Когда вы подаёте тяжёлую коллекцию в Collection Info:

  • Blender НЕ создаёт 10k объектов в сцене;
  • он создаёт один нодовый «пакет» с инстансами всех объектов;
  • геометрия загружается структурировано, без регистрации каждого объекта в depgraph.

Это экономит тысячи циклов оценки графа.

Что такое нодовые инстансы

Они:

  • хранят только ссылку на геометрию, а не полный объект;
  • не требуют отдельных transform‑матриц, если это не указано явно;
  • почти не занимают память (несколько kb вместо десятков mb).

Даже уникальная геометрия оборачивается в «контейнер» и обрабатывается как лёгкая сущность.

Как работает Realize Instances

Эта нода:

  • собирает все инстансы;
  • применяет transform‑матрицы объектов коллекции;
  • сливает всё в один меш «внутри нодовой среды» без участия depgraph.

Критически важно:
Обычный Ctrl+J заставляет Blender объединять объекты через depgraph → медленно.
Realize Instances делает то же самое через вычислительный движок геонод → в десятки раз быстрее.

Дополнительно — почему Relative лучше Original

В режиме Original координаты берутся из «сценового» мира исходной коллекции. Это создаёт:

  • накладные вычисления на преобразование;
  • риски смещения, если коллекция была локально трансформирована.

Relative → предсказуемое поведение и точное совпадение позиции.

Итог работы через GeoNodes

  • В сцене остаётся один объект.
  • Вьюпорт работает быстро.
  • Исходная коллекция скрыта и не грузит память.
  • Внешний файл остаётся редактируемым.
  • Рекурсивные обновления depgraph не происходят.

3. Безопасное удаление большого количества объектов

Удаление напрямую вызывает массовую перерегистрацию графа зависимостей — самый тяжёлый процесс. Поэтому Blender зависает.

Безопасные способы избавиться от объектов

  1. Выключить коллекцию галочкой (Exclude from View Layer)
    Не только скрывает, но и выгружает объекты из оценки графа. Это самый быстрый метод.
  2. Unlink (ПКМ → Unlink)
    Удаляет коллекцию из текущей сцены, но не стирает из .blend. Нет перерасчёта графа → операция мгновенная.
  3. Перенос в отдельный .blend
    Если нужно «удалить, но сохранить», можно:
  • File → Save As → выделить коллекцию → Save Selected.
  1. Работа через linked коллекции
    Если коллекцию добавили через Link, удаление означает просто удаление ссылки. Depgraph не трогается.

Как вернуть коллекцию

Outliner → режим Blender File → Collections → ПКМ → Add to Scene.