К содержанию
fohbookбета/ TouchDesigner

Идеальное воспроизведение

Медленное плавное движение выдаёт каждую запинку. Частоты проекта, монитора и контента, V-Sync, эксклюзив на Windows, Direct Display Out и выходы без монитора.

Ветка вашего пульта:
Быстрый выбор:

Случайный пропуск многим проектам не страшен, но медленное плавное движение выдаёт каждую запинку. Ровно получается, когда сходятся три вещи. TouchDesigner успевает кадр на каждое обновление устройства и идёт на его частоте: монитор 60 Гц — ровные 60, SDI 29,97 — проект на 29,97. Кадр показывается целиком — для монитора это V-Sync, у SDI такой проблемы нет. И система показывает каждый кадр, ничего не выбрасывая, — на Windows это эксклюзивный доступ к видеокарте. Опыт Derivative — в основном Windows, шоу на macOS у них мало.

Мониторы

Частота проекта равна частоте монитора, все мониторы на одной частоте — обе вещи проверяет Monitors DAT. Видео снято на частоте монитора или на делящей её нацело. Выходы сведены в один монитор (Mosaic, Surround, Eyefinity) и при нужде разрезаны разветвителем — Несколько экранов. Масштаб стола 100 %, V-Sync Mode включён (он и так по умолчанию), режим Perform, без Borders, открыто одно перформ-окно, и у него эксклюзив. Либо Direct Display Out TOP: мимо стола, и проблем с диспетчером окон просто нет.

Windows округляет частоту: монитор на 59,94, в настройках 60. Проект на 60 тогда регулярно теряет кадр, и на движении это видят все. Точную частоту пишет Monitors DAT, под неё ставят проект — частота бывает дробной, Время и FPS.

Убрали в 2022.20000 · в вашей версии ещё работает

Режимы «FPS is Half Monitor Rate» обещали 30 кадров ровно по два обновления на 60 Гц, но по странице Perfect Playback не работают со сборок 2022.20000, с переходом на Vulkan; без них кадр держится на экране то одно, то три обновления.

Контент по тому же правилу: 30 при 60 Гц ровно, 29,97 при 60 Гц повторяет кадр, Кодеки.

Эксклюзив

С Windows 8 окнами управляет DWM, и даже ровные кадры от TouchDesigner он иногда не показывает. Известное средство одно — эксклюзивный доступ.

Окно без рамки на весь стол, а стол — один монитор или сведённые в один. Лишний монитор на той же карте — скажем, для управления машиной — в эксклюзив не пустит. Щелчок мимо окна выводит из режима, обратно — возвращает. Второй путь — Opening Size = Single Display Exclusive: окно берёт один монитор, остальные у стола, но после щелчка мимо эксклюзив вернётся только с новым входом в Perform.

Эксклюзив видно по миганию экрана при входе в Perform и при уходе на другое окно. Выпадающее меню — тоже окно и выбивает с тем же миганием. Если мигание хуже редких пропусков, окно делают на пиксель меньше стола, и в эксклюзив оно не входит. Что происходит со сменой кадров, показывает PresentMon.

Без монитора

Video Device Out, NDI Out и прочие: проект на частоте устройства или потока, контент на ней или на делящей её нацело, режим Perform, а у перформ-окна выключен V-Sync Mode или Draw Window — иначе окно подстроится под монитор стола с чужой частотой. В редакторе от этого не уйти, поэтому пропуски мерят только в Perform, Выход на SDI.

Ещё мешает Что делать
Уведомления, всплывающие окна «Не беспокоить», лишнее удалить
Автообновления Отложить или выключить
Антивирус Выключить на шоу или исключить папки проекта
Электропитание «Максимальная производительность»
Гибридная графика Дискретная карта — Железо

Диагностика

Смотрят несколько минут на droppedframes у Perform CHOP. Пропуски ровным шагом — расходятся частоты. Пачками — что-то периодически отнимает ресурсы: диск, сеть, Python. Недобор всё время — проект не успевает, Что не должно кукаться. Счётчик чистый, а рывки видны — почти наверняка DWM, эксклюзива нет. Несколько машин на одну картинку — Синхронизация машин и выходов.

Прогон длиной в шоу

Пять минут ничего не доказывают: проблема появляется на двадцатой, когда что-то накопилось. Гоняют столько, сколько идёт шоу, и смотрят счётчик.

Нашли в статье ошибку, устаревшее или непонятное место?

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