уровень
Профи
Сложные и редкие задачи: крупные шоу, нештатные ситуации, тонкости инструмента.
34 статьи гайда по TouchDesigner, в порядке разделов.
- GLSL: свой шейдерОдна формула на видеокарте вместо десятка узлов. Заготовка шейдера с TDOutputSwizzle, входы, встроенные uniform, свои параметры и что делать с ошибкой компиляции.
- ИнстансингОдна геометрия, тысячи копий за один вызов видеокарты. Копией может быть сэмпл CHOP, строка DAT, пиксель TOP или точка SOP; канал Active включает их по одной.
- ЧастицыСотни частиц — Particle SOP на процессоре, сотни тысяч — particlesGpu из палитры, миллионы — Particle POP. Эмиссия, силы, время жизни и почему симуляцию надо уметь сбросить.
- Облака точекОблако хранится в TOP, где пиксель — точка, или в POP с любыми атрибутами. Откуда его брать, как показать и как рисовать гауссовы сплаты.
- POP: геометрия на видеокартеТочки, примитивы и атрибуты на видеокарте, без своих шейдеров. Что такое POP, из чего он состоит, что уже умеет и почему голые точки не рендерятся.
- Камеры, глубина и проходыПараметры камеры, которые решают картинку и точность глубины, Depth TOP и дополнительные буферы, проходы и несколько камер в одном Render TOP.
- Extensions: классы у компонентаКласс Python на компоненте: op('scene').Next() вместо цепочки скриптов. Как подключить, почему имена с большой буквы и что делать с инициализацией.
- Репликатор и генерация сетиReplicator COMP размножает мастер по числу или по таблице, но копии становятся клонами, только если мастер клон сам себе. Колбэки, генерация скриптом и почему не во время шоу.
- Внешние модули и окруженияПакеты pip подключают путём в настройках или через tdPyEnvManager, который возит окружение вместе с проектом. numpy и OpenCV свои не подменяют, тяжёлое изолируют.
- Состояние и хранилищеНомер сцены, счётчик посетителей, выбор оператора — где их держать, чтобы выражения видели перемены, а перезапуск возвращал нужное, а не вчерашнее.
- Отложенный запуск и потокиrun() выполняет код позже — через кадры, миллисекунды или в конце кадра — и умеет отменяться. Долгую работу уносят в поток Thread Manager, но сеть из потока не трогают.
- ТаймкодLTC через звуковую карту, MTC через MIDI, Movie File In, который сам идёт за таймкодом, и как узнать, что сигнал пропал, если флага у LTC In нет.
- Веб: HTTP, WebSocket, MQTT, браузерWeb Client для запросов наружу, Web Server для своего API и пульта в браузере, MQTT для датчиков, Web Render TOP для страницы как картинки.
- Несколько экрановСколько бы ни было экранов, окно одно — холст на все выходы. Mosaic, разветвители, EDID, вторая видеокарта и Direct Display Out мимо рабочего стола Windows.
- Геометрия проекции: stoner, camSchnappr, калибровкаКартинка прямоугольная, поверхность нет. От Corner Pin до проектора, вычисленного по 3D-модели в camSchnappr, и калибровки камерой через Vioso и Scalable.
- Проекторы: склейка и чёрный уровеньДва проектора на одну стену — это шов. Как гасить края по кривой, чем помогает projectorBlend, что делать с чёрным в перекрытии и в каком порядке всё настраивать.
- Вывод по сетиКартинка по сети вместо кабеля: NDI для превью и обмена, Video Stream Out для стрима, Touch Out между своими, ST2110 для вещания. Полоса, параметры и сеть.
- Синхронизация машин и выходовНесколько машин — одна картинка. Откуда берётся рассинхрон, почему проект обязан быть детерминированным, OSC на 1–3 кадра, Sync CHOP в пределах кадра и Frame Lock с Quadro Sync.
- Выход на SDI и карты выводаКартинка в микшер, рекордер или процессор по SDI: карты вывода, Video Device Out TOP, fill и key, вшитые звук и таймкод, и почему проект должен идти на частоте сигнала.
- Как нейросеть запускается в TouchDesignerГде считать модель: встроенный оператор, Python в процессе TouchDesigner с tdPyEnvManager и Thread Manager, отдельный процесс или сервис. Цена каждого и официальный TDDepthAnything как шаблон.
- Глубина и сегментацияСколько до объекта и где кончается фигура. Depth Anything V2 по примеру Derivative, камеры глубины, сегментация от хромакея до SAM, и как маску успокоить.
- Диффузия в реальном времениStreamDiffusion в патче: TouchDiffusion и StreamDiffusionTD, сколько кадров даёт какая карта, почему картинка кипит и как держать диффузию так, чтобы шоу без неё выжило.
- ComfyUI и офлайн-генерацияКогда реального времени мало: граф ComfyUI, вызванный из TouchDesigner. Экспорт в API, мосты ComfyUI-TD и ComfyTD, очередь и кэш, и почему ComfyUI лучше держать на другой машине.
- Речь, текст и языковые моделиГолос, текст и языковые модели — слой, который работает в масштабе секунд. Web Client DAT или Python в потоке, ключ вне проекта, модерация, запасной ответ и локальные модели для долгих инсталляций.
- Нейросеть на площадкеМодель на шоу — новый класс отказов. Шесть пунктов регламента, вопросы к себе, на которые нужен ответ до выезда, и разговор с заказчиком о правах, ожиданиях и данных зрителей.
- Память видеокартыКаждый TOP — текстура в видеопамяти. Как посчитать, что её съедает, как освободить без выключения, как поймать утечку и что бывает, когда память кончилась.
- Что не должно кукатьсяБыстрее всего то, что не считается. Где прячется лишний кук, почему Switch лучше Blend, что даёт Null CHOP в Selective и какие галки Render TOP экономят видеокарту.
- Несколько процессовТяжёлое и рискованное — в отдельный процесс. Engine COMP: входы, параметры, часы и буферы, ловушка с onStart, во что обходится разделение и как TouchEngine работает в Unreal и медиасерверах.
- Идеальное воспроизведениеМедленное плавное движение выдаёт каждую запинку. Частоты проекта, монитора и контента, V-Sync, эксклюзив на Windows, Direct Display Out и выходы без монитора.
- Интерактив с камеройЗритель машет рукой — картинка отвечает. Зона, камера, свет, от разницы кадров до скелета и лидара, задержка, толпа и служебный вид, без которого не отладиться.
- Шоу по таймкодуШоу под фонограмму: LTC на входе, плееры, которые сами встают по таймкоду, события таблицей, решения на обрыв и скачок, и репетиция без площадки.
- Инсталляция без оператораМесяцами без людей: автозапуск сразу в Perform, TouchPlayer, watchdog, расписание с ночным перезапуском, Windows без сюрпризов и тест выдернутой вилкой.
- Портрет через нейросетьЗеркало, в котором зритель другой. Камера, признак присутствия, кроп, маска, диффузия и смесь с оригиналом; борьба с задержкой, автоматический план Б и данные посетителей.
другие уровни гайда