К содержанию
fohbookбета/ TouchDesigner

Разрешение и формат пикселя

Output Resolution и Pixel Format на странице Common решают, сколько узел стоит. Когда уменьшать, когда брать 16 бит и почему 32 бита не для картинки.

Ветка вашего пульта:
Быстрый выбор:

Из всех параметров TOP важнее всего два на странице Common: Output Resolution и Pixel Format. От них зависит, сколько памяти займёт узел и сколько времени будет считаться.

Разрешение

По умолчанию стоит Use Input, и размер наследуется от входа: его задают один раз в источнике, дальше он идёт по цепочке. Генератор без входа — Noise, Ramp, Constant — берёт размер из поля Resolution. В меню есть кратные варианты Half, Quarter, Eighth, 2X, 4X, 8X и режимы Fit Resolution, Limit Resolution, Custom Resolution. Кратные удобны тем, что идут за входом: поменяли источник — уменьшенная ветка поменялась вместе с ним.

Явно размер задают в источнике генерации, перед дорогой операцией вроде блюра или конвертации в CHOP и в конце, под конкретный выход.

Считайте в том разрешении, в котором нужно

В кадре 512 × 512 примерно в тридцать раз меньше пикселей, чем в 4K. Маске, блюру, свечению и фидбэку полное разрешение почти не нужно: блюр, посчитанный маленьким и растянутый до 4K, часто на глаз не отличить.

Формат

Формат Бит на канал Диапазон Когда нужен
8-bit fixed (RGBA) 8 0…1, 256 градаций Генераторы по умолчанию: видео, вывод
sRGB 8-bit fixed (RGBA) 8 0…1 с кривой sRGB 8 бит, где тёмным тонам достаётся больше градаций
10-bit RGB, 2-bit Alpha 10 0…1, 1024 градации Плавнее 8 бит при той же памяти, если альфа не нужна
11-bit float (RGB) 11/11/10 от 0 и выше 1, без отрицательных Свечение и сложение выше 1.0 при памяти 8-битного RGBA; альфа всегда 1
16-bit fixed (RGBA) 16 0…1, 65 536 градаций Точные маски и данные в пределах 0…1
16-bit float (RGBA) 16 любые, включая отрицательные Фидбэк, накопление, градиенты, HDR
32-bit float (RGBA) 32 любые, включая отрицательные Данные, позиции, точные расчёты
Mono / RG / A 8/16/32 — Маски и пары значений: экономит память

По умолчанию формат тоже Use Input. Фиксированные форматы держат только 0…1, плавающие — любые числа. Память растёт линейно: 16 бит вдвое дороже 8, 32 — вчетверо, и тридцать узлов в 4K на 32 битах занимают гигабайты видеопамяти. У 32-битного float, по документации Derivative, нет фильтрации текстур — выборка всегда по ближайшему пикселю, поэтому картинку, которую масштабируют и вращают, держат в 16 битах.

8 бит не хватает на плавных градиентах, где появляются полосы — особенно на ярком LED-экране и тёмных заливках. Не хватает в фидбэке: каждый проход теряет точность, и петля на 8 битах быстро превращается в грязь. Не хватает при накоплении и сложении: всё, что выше 1.0, фиксированный формат отрезает. А позиции, нормали и скорости в инстансинге хранят только в 32-битном float.

Последний шаг перед выводом обычно снова 8 бит — экран больше не покажет. Исключение составляют HDR и 10-битные экраны, формат окна для них настраивается в Window COMP — Perform-окно.

Форма картинки

Разрешение здесь — пиксели, а не форма: 1920 × 1080 и 1408 × 896 одинаково законны, а LED-экрану разрешение задаёт его процессор, и чаще всего нестандартное — LED-экран. Output Aspect отдельно задаёт соотношение сторон, с которым картинку показывают вьюеры и используют другие операторы. Не совпало оно с отношением пикселей — пиксели стали неквадратными, и всё «почему-то сплющено».

Non-Commercial режет любую картинку до 1280 × 1280

Каждое изображение в проекте, а не только окно вывода. Свободна лишь ширина картинок высотой в 1–2 пикселя — Редакции и лицензии. Узнают об этом обычно на площадке.

Слабая машина и проверка

Edit → Preferences → TOPs → Global Resolution Multiplier умножает разрешение всех TOP, у которых на Common включён Use Global Res Multiplier, — проект с мощной станции открывается на ноутбуке в половинном размере без правок.

Что на самом деле, показывает средний клик по TOP: разрешение, формат, видеопамять, время кука. Info CHOP отдаёт то же каналами resx, resy, gpu_memory_used, cook_time. С этого начинают, когда «почему-то тормозит».

Нашли в статье ошибку, устаревшее или непонятное место?

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