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

Что не должно кукаться

Быстрее всего то, что не считается. Где прячется лишний кук, почему Switch лучше Blend, что даёт Null CHOP в Selective и какие галки Render TOP экономят видеокарту.

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

Документация обещает от оптимизации ускорение в 2–20 раз, и в основном оно приходит от работы, которую перестали делать зря. Ищут по порядку: что кукается без нужды, что считается в лишнем разрешении, что считается дважды, что пересчитывается каждый кадр, хотя меняется раз в минуту. Ускорять сами вычисления — в последнюю очередь, и каждый шаг с замером, Performance Monitor и probe.

Источник Как найти Что делать
Открытые вьюеры Глазами Закрыть, мерить в Perform
Cook Every Frame, Always Cook Поиск по параметрам, Alt+S Выключить без причины
Ветки без вывода, но с вьюером Performance Monitor Cooking у компонента — выкл
Сцены за Blend или Cross Логика проекта Switch
Скрипты каждый кадр onFrameStart в Execute DAT На события: CHOP Execute, Parameter Execute — Скрипты и колбэки
Медленные выражения Python Подсказка над параметром Упростить

Выражения Python в параметрах обычно компилируются; подсказка над параметром пишет (Optimized) или (Un-optimized), а Perform CHOP считает их в activeexpressions и optimizedexpression. Дороже всего длинные функции в расширениях и модулях.

Switch TOP тянет один вход, и остальные не считаются, пока не включён Blend between Inputs. Cross и Blend считают оба всегда — при одной сцене из десяти это десятикратная разница. Между сценами Switch, а на время перехода считаются две ветки — Кук. Неизменное — импорт геометрии, однажды сделанные текстуры, таблицы со старта — запирают Lock, и узел становится сохранёнными данными, Вьюеры и флаги.

Процессор

Null CHOP в Selective останавливает пересчёт ниже по цепочке, если вход не изменился, но сам при этом сравнивает данные на каждом изменении. Transform SOP двигает каждую точку на процессоре, а те же числа в Geometry COMP видеокарта применит разом. DAT, SOP и CHOP куда быстрее, когда от кука к куку меняют значения, не добавляя строк, точек и каналов. Math CHOP, сливающий CHOP разной длины или с разным началом, бывает неожиданно длинным. Кусок Python часто заменяется сетью из CHOP и DAT на порядок быстрее. Антивирус и лишние службы на машине шоу выключают.

Видеокарта

Половина разрешения по осям — четверть пикселей и примерно четверть времени, а маски, размытие, свечение, feedback, вход TOP to CHOP и нейросетей полного размера почти не просят. Blur TOP дорожает с размером фильтра. В рендере много решают свет и материалы: конус дороже точки, Rim Lighting в Phong MAT нагружает каждый пиксель. Раннюю проверку глубины и отсечение задних граней включают против перерисовки. У Render TOP на Advanced — Draw Depth Only для карты теней и выключенный Color Output Needed, когда цвет не нужен.

Не всё нужно считать 60 раз в секунду: анализу картинки хватит 15–20 раз, логике — событий, таблицам — раза в секунду, тяжёлой модели — реже с интерполяцией. Timer CHOP или счётчик кадров разрешают кук по условию, а тяжёлое выносят в процесс со своей частотой — Несколько процессов.

Один раз — и в Null

Нужное в нескольких местах считают раз и кладут в Null. Дубли цепочек — самая частая причина внезапных тормозов.

Вслепую не оптимизируют

Половина «очевидного» не даёт ничего, а мелочь иногда даёт вдвое. Замер до и после — на каждую правку.

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

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