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

Вьюеры и флаги узла

Bypass пропускает насквозь, Lock замораживает и пишет в файл, Cooking гасит компонент, Render решает, попадёт ли объект в кадр. И ещё полдюжины флагов.

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

Маленькие кнопки по левому и нижнему краю узла — флаги. Почти каждая непонятная проблема новичка объясняется одним из них.

Флаг не параметр: узел от него не пересчитывается, экспорт на него не сделать. Из Python флаг ставится свойством узла — op('level1').lock = True, op('level1').bypass = True.

Флаг Где Что делает
Viewer левый верхний угол Показать содержимое прямо в узле или спрятать до значка
Bypass левый край Пропустить первый вход насквозь на выход
Lock левый край Заморозить результат в памяти и сохранить его в файл
Viewer Active нижний правый угол Разрешить взаимодействие мышью внутри окошка
Cooking у компонентов Остановить кук всего, что внутри
Immune у узлов внутри клона Не синхронизировать узел с мастером клона

У объектов 3D (Geometry, Camera, Light) добавляются Display, Render и Pickable, у CHOP — Export, у SOP — Compare и Template.

Bypass и Lock

B оставляет узел в цепочке, но первый вход уходит прямо на выход; bypass на компоненте отключает всё внутри. Пройдитесь так по цепочке, и станет видно, кто испортил картинку.

Lock держит текущий результат в памяти: узел больше не пересчитывается и не зависит от входов. Им замораживают дорогой, но неизменный результат — текстуру, просчитанную геометрию, — делают «фотографию» состояния для сравнения и хранят данные прямо в файле: залоченный DAT или TOP сохраняется в .toe или .tox вместе с содержимым. Хранится он там целиком, так что каждый замок на большой картинке раздувает проект; Derivative советует пользоваться замком умеренно.

Залоченный узел не реагирует ни на что

«Меняю параметр — ничего не происходит» чаще всего значит забытый замок или узел вне цепочки вывода, Кук.

Cooking

Флаг компонента выключает кук всей его сети. Узлы внутри держат последний результат и прежнюю память, но не тратят ни миллисекунды — так гасят тяжёлые блоки, которые сейчас не нужны. Из Python — op('scene2').allowCooking = False. Последний результат в файл не пишется, и после перезагрузки .toe выходы внутри пустые.

Display, Render, Pickable

Display отвечает за то, виден ли объект во вьюерах камеры, Render — попадёт ли он в рендер Render TOP или Render Pass TOP, Pickable — выделяется ли мышью в 3D-вьюере. Объект виден во вьюере, но в Render TOP его нет — почти всегда выключен Render или объекта нет в параметре Geometry у самого Render TOP. Внутри Geometry COMP те же Display и Render у SOP решают, какой SOP цепочки показывать и какой рендерить.

Viewer Active

Пока он выключен, клик по окошку выделяет узел. Включён — мышь работает внутри: камера в Geometry COMP крутится, кнопки в Container COMP жмутся, в Kantan Mapper рисуется. A над сетью переключает его у выделенных узлов, Alt+A включает у всех, пока клавиши зажаты.

Clone и Immune

Компонент с Clone Master повторяет содержимое мастера — узлы, провода, параметры и флаги внутри. Правите мастер, меняются все клоны. Собственные параметры мастера у клонов появляются, но значения у каждого свои; раздать одно значение всем — RMB по параметру мастера → Copy to all Clones. Отличаются клоны входами, значениями своих параметров и выражениями вроде parent().digits, то есть номером в имени. На этом держатся масштабируемые проекты: двадцать одинаковых экранов, один мастер и Репликатор, который клоны создаёт.

Immune — личное в клоне

Узел внутри клона с флагом Immune мастер не трогает: остаются свои параметры, входы и данные таблицы. Новый Immune-узел, добавленный только в клон, тоже сохранится при синхронизации, но тем, куда он подключён, обычно тоже нужен Immune — связь хранится на входе узла.

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

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