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

16 бит: coarse и fine

Два канала на один параметр: зачем нужны, как посчитать и где это критично.

Один DMX-канал даёт 256 значений. Для поворота головы на 540 градусов это шаг в два градуса — заметный скачок. Отсюда 16-битные параметры.

Как устроено

Два канала: coarse (старший байт, MSB) и fine (младший, LSB).

значение = coarse × 256 + fine          диапазон 0 … 65535
coarse   = значение // 256
fine     = значение %  256

Порядок каналов задаётся профилем прибора: обычно coarse идёт первым, fine — следом или в другом месте футпринта.

Как посчитать в TouchDesigner

Держите параметр в 0…1, разложение делайте в самом конце:

v      = значение 0..1
v16    = v * 65535
coarse = floor(v16 / 256)
fine   = v16 % 256

В Math CHOP и Expression CHOP это две строки. Практический приём из сообщества: масштабировать в 0…65535, затем одним выражением взять целочисленное деление на 256 для coarse и остаток для fine.

Проверка: при плавном изменении входа coarse растёт ступенями, fine пилообразно бежит от 0 до 255 и сбрасывается. Если fine ведёт себя иначе — ошибка в округлении.

Где это нужно

Параметр Нужно ли 16 бит
Pan / Tilt движущейся головы Обязательно
Диммер в театре, медленные фейды Очень желательно
Зум, фокус Желательно
Цвет RGB на пикселе Обычно нет
Гобо, призма, шаттер Нет: дискретные значения

Диммер

Восьмибитный диммер на медленном фейде виден: картинка «ступеньками» проседает, особенно в нижней трети шкалы, особенно на светодиодах. 16-битный диммер снимает проблему.

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

Округление — не мелочь

Ошибка в один бит даёт дёргание

Неправильное округление приводит к тому, что fine прыгает на границе байтов, и голова мелко дрожит на медленном движении. Проверяйте разложение Trail CHOP на обоих каналах, а не глазами по прибору.

Приём 16 бит

Если TouchDesigner принимает DMX с пульта, обратное преобразование такое же:

значение = coarse * 256 + fine

Для управления TD с консоли 16 бит нужны там, где 256 шагов мало — положение, масштаб, точная скорость — TD как прибор.

Соберите компонент один раз

Блок «0…1 на входе, coarse и fine на выходе» с параметром «порядок байтов» пишется за десять минут и потом используется всю жизнь — Свои компоненты.

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