К содержанию
fohbook/ TouchDesigner
уверенный

Из чего состоит кадр

16,7 миллисекунды: что происходит внутри одного кадра и почему падение частоты почти всегда объяснимо.

При 60 кадрах в секунду на кадр отведено 16,7 мс. Всё, что не уложилось, превращается в пропущенный кадр. Понимание, куда уходит это время, — основа всей оптимизации.

Порядок внутри кадра

  1. Начало кадра: колбэки onFrameStart, таймеры.
  2. CHOP-цепочки и скрипты: сигналы, входы, логика.
  3. Геометрия: SOP и POP.
  4. Рендер: Render TOP.
  5. TOP-цепочки: композитинг и обработка.
  6. Вывод: панели, окна, устройства (DMX, звук, сеть).
  7. Конец кадра: onFrameEnd.

Практические следствия:

  • значение, посчитанное CHOP в этом кадре, попадёт в картинку в этом же кадре;
  • результат рендера, прочитанный обратно в CHOP (TOP to CHOP), придёт на следующем кадре;
  • Python выполняется в главном потоке: пока скрипт считает, кадр стоит.

Три бюджета

Ресурс Что тратит Как измерить
Время CPU CHOP, SOP, DAT, Python, чтение файлов Performance Monitor
Время GPU TOP, рендер, POP, шейдеры Probe, probe из палитры
Память GPU Все TOP, текстуры, кэши Память GPU

Тормозить может любой из трёх, и лечатся они по-разному. Первое, что нужно понять при падении кадров, — кто из трёх.

Быстрая диагностика: GPU или CPU

Официальный приём: временно поставьте разрешение рендера или тяжёлых TOP в 64 × 64. Если частота выросла — узкое место на видеокарте. Если нет — на процессоре.

Realtime

На таймлайне есть переключатель Realtime. Включён — TouchDesigner пропускает кадры, чтобы держать реальное время; выключен — считает каждый кадр столько, сколько нужно.

Для шоу — всегда включён. Выключают только для покадрового рендера.

Задержка против частоты

Это разные вещи, и их путают. Проект может выдавать честные 60 кадров с задержкой в 200 мс — и наоборот. Задержка складывается из:

камера → захват → обработка → рендер → окно → экран

Каждое звено добавляет минимум кадр, часто больше. Для интерактива важна именно задержка, для картинки под музыку — частота — Камеры.

Целевая частота

  • 60 fps — стандарт для показа.
  • 30 fps — приемлемо для инсталляции с медленной картинкой, но движение будет заметно хуже.
  • Частота проекта должна совпадать с частотой экрана. 60 в проекте и 59,94 на выходе дадут регулярный рывок раз в несколько секунд — Идеальное воспроизведение.
Смотрите не на среднее, а на выбросы

Средние 60 кадров при регулярном провале до 20 выглядят хуже, чем ровные 45. Perform CHOP вместе с Trail CHOP показывает историю: именно там видны короткие провалы, которые убивают ощущение плавности.

На других пультах

весь переводчик →
Кадры в секундуздесь — Cook time
  • ResolumeFPS
рядом по смыслу