К содержанию
fohbook/ TouchDesigner
профи

Что не должно куковать

Самая результативная оптимизация — не ускорять узлы, а убирать те, которые считаются зря.

Официальная документация обещает от оптимизации ускорение в 2–20 раз. Такие цифры дают не микроправки, а устранение лишней работы.

Порядок поиска

  1. Что кукается, хотя не должно.
  2. Что считается в слишком большом разрешении.
  3. Что считается несколько раз вместо одного.
  4. Что считается каждый кадр, хотя меняется раз в минуту.
  5. Только потом — оптимизация самих алгоритмов.

Лишний кук: где искать

Источник Как найти Что делать
Открытые вьюеры узлов Визуально в сети Закрыть; замерять в перформ-режиме
Cook Always Поиск по параметрам Убрать, если не обосновано
Ветки без вывода Performance Monitor Отключить Cooking у контейнера
Неактивные сцены Логика проекта Switch вместо Blend
Тяжёлые выражения в параметрах Не видно в мониторе Вынести в CHOP или таблицу
Скрипты на каждом кадре Execute DAT Перевести в колбэки — Скрипты

Switch против Blend

Switch не кукает неиспользуемые входы (при соответствующей настройке), Cross и Blend считают оба. Для выбора сцены из десяти — это разница в десять раз.

Практика: между сценами — Switch, а плавный переход делается двумя активными ветками только на время перехода.

Замок на статичном

Всё, что не меняется, должно быть заморожено:

  • импортированная геометрия — SOP;
  • сгенерированные один раз текстуры;
  • таблицы, прочитанные при старте.

Lock превращает узел в данные — Флаги.

Разрешение по месту

Самый недооценённый приём. Список того, что почти никогда не требует полного разрешения:

  • маски и матовые каналы;
  • размытие и свечение;
  • фидбэк;
  • вход для TOP to CHOP;
  • вход для нейросетевых моделей — Нейросети;
  • фон, который всё равно размыт.

Разная частота для разных вещей

Не всё должно считаться 60 раз в секунду:

  • анализ картинки — 15–20 раз;
  • логика сцены — по событию;
  • обновление таблиц — раз в секунду;
  • тяжёлые модели — реже, с интерполяцией между результатами.

Реализуется Timer CHOP или счётчиком кадров, который разрешает кук по условию.

Один раз — и в Null

Правило, дающее больше всего: любой результат, нужный в нескольких местах, считается один раз и кладётся в Null. Дублирование цепочек — самая частая причина того, что проект вдруг перестал успевать.

Не оптимизируйте вслепую

Каждая правка проверяется измерением. Половина «очевидных» оптимизаций не даёт ничего, а половина того, что казалось мелочью, даёт двукратный выигрыш — Монитор и Probe.

рядом по смыслу