Из чего состоит кадр
16,7 миллисекунды: что происходит внутри одного кадра и почему падение частоты почти всегда объяснимо.
При 60 кадрах в секунду на кадр отведено 16,7 мс. Всё, что не уложилось, превращается в пропущенный кадр. Понимание, куда уходит это время, — основа всей оптимизации.
Порядок внутри кадра
- Начало кадра: колбэки
onFrameStart, таймеры. - CHOP-цепочки и скрипты: сигналы, входы, логика.
- Геометрия: SOP и POP.
- Рендер:
Render TOP. - TOP-цепочки: композитинг и обработка.
- Вывод: панели, окна, устройства (DMX, звук, сеть).
- Конец кадра:
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 показывает историю: именно там
видны короткие провалы, которые убивают ощущение плавности.
На других пультах
весь переводчик →- ResolumeFPS