TouchDesigner — это визуальный язык программирования на основе узлов для интерактивного мультимедийного контента в реальном времени . Разработанный компанией «Derivative» из Торонто, он часто используется художниками, программистами, креативными кодерами, дизайнерами программного обеспечения и исполнителями для создания перформансов, инсталляций и фиксированных медиа-работ. [2] [3] [4] [5]
Грег Германович, Роб Байрос и Джаррет Смит основали канадскую компанию Derivative. [6] В 2000 году Германович использовал Houdini 4.1 для создания TouchDesigner. С 2002 по 2007 год название релиза TouchDesigner использовало конечные цифры от 007 до 017 для обозначения версии. В 2008 году Derivative выпустила бета-версию платформы под названием TouchDesigner 077, переписанную версию предыдущих версий, которая включала полностью процедурный конвейер OpenGL для создания и эффектов. [6]
TouchDesigner охватывает несколько основных областей 2D- и 3D-производства, в том числе: [7]
Операторы являются строительными блоками проекта TouchDesigner. [2] [8] Эти объекты представлены в виде узлов в пользовательском интерфейсе и связаны для создания процедурных эффектов и анимации. Каждый оператор настраивается с помощью уникального набора параметров и флагов, которые управляют его работой и обработкой. Операторы, часто называемые ops, бывают шести видов:
Операторы компонентов уникальны по сравнению с другими семействами операторов тем, что они содержат свои собственные сети. Сети компонентов могут содержать операторов и/или дополнительные подсети (т.е. дополнительные компоненты). [9]
Операторы текстур — это операции на основе изображений, которые ускоряются с помощью GPU. Данные в TOP могут быть масштабированы до любого разрешения, ограниченного только объемом оперативной памяти, доступной на видеокарте системы. [10]
Операторы каналов являются основой системы управления в TouchDesigner. Используемые для обработки данных движения, аудио, экранных элементов управления, данных MIDI и других устройств ввода, эти операторы организуют данные в виде серии каналов. Согласно документации TouchDesigner, они были разработаны для «уменьшения утомительности редактирования движения и для помощи в создании и управлении более сложным движением». [11]
Операторы поверхности — это объекты, отвечающие за 3D-операции и моделирование в TouchDesigner. Эти объекты используются для генерации, импорта, изменения и комбинирования 3D-поверхностей. [12] Поддерживаемые типы поверхностей — полигоны, кривые, поверхности NURBS, метаболы и частицы. Это, пожалуй, самая старая часть TouchDesigner, корни которой лежат непосредственно в кодовой базе Houdini 4.1.
Материалы используются как часть конвейера 3D-рендеринга в TouchDesigner. Существует несколько стандартных типов материалов, а также материалы, которые поддерживают импорт пользовательских вершинных и пиксельных шейдеров. [13]
Операторы данных используются для хранения текста, таблиц, текстовых кодированных данных ( XML , JSON ) и скриптов. Эти операторы также иногда используются для хранения документов readme и других комментариев кода в данной сети. [14]