К содержанию
fohbook/ TouchDesigner для света
уверенный

Pan Tilt CHOP

Оператор, который считает углы поворота головы на цель — и делает это без флипов и лишних оборотов.

Навести движущуюся голову на точку — задача тригонометрии, у которой есть неприятные краевые случаи. В TouchDesigner для неё есть отдельный оператор.

Что делает Pan Tilt CHOP

Оператор рассчитывает значения pan и tilt для набора платформ типа движущейся головы. На вход подаётся относительное положение цели относительно прибора: каналы tx, ty, tz или полный набор трансформаций, какой выдаёт Object CHOP.

Ключевая особенность: углы считаются так, чтобы минимизировать флипы и угловое перемещение от кадра к кадру. Это то, что отличает рабочий инструмент от формулы из учебника.

Почему это важно

У головы pan обычно 540 градусов — то есть одну и ту же точку она может показать в двух разных положениях. Наивный расчёт через atan2 регулярно выбирает другое положение, и голова совершает полный оборот в момент, когда луч должен был сдвинуться на сантиметр.

На сцене это выглядит как рывок через весь зал. Оператор решает именно эту задачу.

Схема

цель (Null COMP в сцене) ──▶ object CHOP ──▶ pan tilt CHOP ──▶ 16 бит ──▶ dmx
прибор (Null COMP)      ──▶ (относительно)
  1. Позиции приборов — из таблицы патча или из DMX Fixture POP.
  2. Цель — точка в сцене, которую можно двигать чем угодно: рукой, трекингом, анимацией.
  3. Object CHOP даёт относительное положение.
  4. Pan Tilt CHOP считает углы.
  5. Углы переводятся в диапазон прибора и раскладываются на 16 бит.

Из углов в DMX

Диапазоны у приборов разные: 540° по pan и 270° по tilt — типично, но не универсально. Приведение:

pan_dmx  = (pan_deg  + 270) / 540
tilt_dmx = (tilt_deg + 135) / 270

Значения из мануала прибора, а не из головы. Ошибка здесь даёт систематическое смещение, которое потом «чинят» калибровкой — Калибровка.

Ориентация прибора

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

Ограничения

  • Оператор не знает о препятствиях: он не объедет ферму и не остановится перед колонкой.
  • Он не знает о физической скорости прибора — за это отвечаете вы, Скорость и физика.
  • Он не решает, куда светить: цель задаёте вы.
Проверяйте на одной голове

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

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