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 на выходе» с параметром «порядок байтов» пишется за десять минут и потом используется всю жизнь — Свои компоненты.