Несколько процессов
Engine COMP, TouchEngine и разделение проекта: как вынести тяжёлое и рискованное из главного потока.
TouchDesigner считает всё в одном потоке. Единственный способ по-настоящему распараллелить — вынести часть работы в отдельный процесс.
Engine COMP
Engine COMP загружает .tox и выполняет его в отдельном процессе
TouchEngine, показывая результат внутри вашего проекта как обычный узел.
Что важно:
- работает с любой лицензией, включая Non-Commercial;
- на вход и выход можно передавать TOP, CHOP и DAT;
- падение содержимого не роняет главный процесс;
- есть управление частотой: движок может считаться реже основного проекта.
Что выносить
| Что | Зачем |
|---|---|
| Нейросетевые модели | Изоляция от падений — Нейросети |
| Тяжёлая генеративная сцена | Не блокирует вывод |
| Работа с внешними библиотеками Python | Конфликты версий не трогают шоу |
| Части, разрабатываемые другими людьми | Независимая отладка |
| Медленные вещи (запросы в сеть, чтение больших файлов) | Не крадут кадр |
Цена
- Задержка передачи между процессами — как минимум кадр.
- Память: каждый процесс держит свои текстуры.
- Отладка сложнее: в чужой процесс не зайдёшь так же свободно.
- Синхронизация: движок и хост считаются независимо.
TouchEngine вне TouchDesigner
Та же технология доступна снаружи: плагины для Unreal Engine и других
приложений позволяют запускать .tox внутри чужого софта. Технология
бесплатна; включается наличием платной лицензии TouchDesigner или
TouchPlayer на машине пользователя.
Практический сценарий: логика, интерактив и коммутация делаются в
TouchDesigner как .tox, тяжёлый фотореалистичный рендер — в Unreal.
Несколько машин
Следующий уровень — разнести по машинам:
Touch In / Touch Outдля картинки и данных между экземплярами — Вывод по сети;- NDI там, где допустима задержка;
- OSC для синхронизации состояния — OSC;
- общий таймкод как источник времени для всех.
Схема «одна машина считает, вторая выводит, третья в резерве» — типовая для больших инсталляций — Резерв.
Переносить готовый монолит в несколько процессов больно. Если уже на этапе
проектирования видно, что в проекте будет нейросеть или тяжёлая
симуляция, — делайте её отдельным .tox с самого начала.
Главный процесс обязан корректно работать, когда движок упал: показывать последнее состояние или запасную графику, а не чёрный экран с ошибкой. Проверьте это специально — убейте процесс движка и посмотрите, что покажет шоу — Падает или зависает.